Licht Ein, bei Fenster auf Fehler ?

Guten Abend,

ich bin neu in IPS und brauch bitte eure Hilfe, ich denk das ich hier bei meinem Problem nur eine falsche denkweise habe.

Ich möchte wenn der Fensterkontakt „AUF“ ist das Licht „EIN“ schalten und wenn das Fenster „ZU“ ist das Licht „AUS“ schalten.

Mit meinem Code haut diese ganze gaudi aber irgendwie nicht hin :confused:



<?

 //Fügen Sie hier Ihren Skriptquellcode ein


if (GetValueBoolean (19181 /*[Geräte\Haupthaus\Küche\Fensterkontakt - Nord]*/, "STATE" ) === true) {

HM_WriteValueBoolean (38227 /*[Geräte\Haupthaus\Küche\Schalter - LED Band Arbeitsplatte]*/, "STATE", true);

}

else{

HM_WriteValueBoolean (38227 /*[Geräte\Haupthaus\Küche\Schalter - LED Band Arbeitsplatte]*/, "STATE", false);
}

?>


Ich würde mich über Hilfe eurerseits sehr freuen.

Gruß Bene

Ein = zu viel?

Gruß
Bruno

<?

 //Fügen Sie hier Ihren Skriptquellcode ein


if (GetValueBoolean (19181 /*[Geräte\Haupthaus\Küche\Fensterkontakt - Nord]*/) == true) {

HM_WriteValueBoolean (38227 /*[Geräte\Haupthaus\Küche\Schalter - LED Band Arbeitsplatte]*/, "STATE", true);

}

else{

HM_WriteValueBoolean (38227 /*[Geräte\Haupthaus\Küche\Schalter - LED Band Arbeitsplatte]*/, "STATE", false);
}

?>

Gehts so?
Ist 19181 die ID der Statusvariable des Fensterkontakts und 38227 die Instanz des Aktors?
Wenn nicht, dann noch ändern.

Jetzt, ihr seit Götter :smiley:

aber das Script läuft nicht weiter… also wenn ich das Fenster „ZU“ habe geht das Licht „AUS“ und wenn ich es „AUF“ habe dann geht es „AN“ aber nur wenn ich das Script manuell ausführe. Geht das auch Automatisch?

Götter … noch lange nicht :cool:

Du musst dem Programm natürlich durch ein Ereignis oder einen Timer (hier wahrscheinlich sinnlos) mitteilen, dass es laufen soll. Eigene Intelligenz ist da nicht drin und riechen kann da auch nix. :wink:

Damit ich nicht alles erklären muss
http://www.ip-symcon.de/service/dokumentation/konzepte/ereignisse/

Oder genauer gesagt ein Ereignis für dieses Script anlegen bei Variablenänderung der Variablen vom Fensterkontakt.
Ich glaube, das hilft ihm etwas mehr.

Grüße,
Doc

Ich glaub’s nicht, ohne die Grundlagen nützt ihm das nix :eek:

Jetzt aber Götter :smiley:

Danke funktioniert Super!!!

Habe ein ausgelöstes Ereignis benutzt.

Gruß Bene

Hast recht,
hatte deinen Link auf die schnelle übersehen.

Doc

Auch wenn schon etwas her.
Es geht auch viel einfacher ohne gross Scripte zu nutzen.
Und das zähle ich wirklich zu den Grundlagen welche in der Doku und im WiKi fehlen.

  • Doppelklick auf ID 38227
  • Reiter Ereignisse wählen
  • Klick auf 'Neues augelöstes Ereignis
  • Unter ‚Variable‘ deine Fenster/State-Variable auswählen
  • Auslöser auf 'Bei bestimmten Wert
  • Wert z.b. true
  • Weiter klicken
  • Funktion wählen : z.B. HM_WriteBoolean und Wert true für einschalten.
  • Weiter + Fertig klicken.

Ausschalten geht Identisch, nur mit den Werten false.

Michael

Reichlich spät … :smiley: :smiley:

Mir gefällt die Skript-Methode besser. Habe die Variante zwar auch im Einsatz, bin aber schon drüber gestolpert die Funktion dann zu suchen. Ein Skript ist im Ordner. :wink:

Gruß
Bruno

Musste das Beispiel erst suchen :o
Schieb es auf meinen Gesundheitszustand. Bin noch immer nicht fit.
Aber für so ganz simple Sachen reicht das, gerade wenn man nicht viel mit PHP am Hut hat.
Michael

Gute Besserung :wink:

Und gerade Anfänger wundern sich später, wenn sie das System und PHP besser kennengelernt haben, woher unerklärliche Effekte kommen und können sich nicht an solche „versteckten“ Dinge erinnern, die sie mal „gestrickt“ hatten.
Das ist mit Vorsicht zu genießen.
Ich mags ebenso lieber geordnet in Skripts (im Ordner :wink: ), denn da lassen sich auch schnell mal Änderungen vornehmen.
Einen Ablauf- (Zeit-)vorteil gewinnt man dadurch auch nicht.

Wo ist das denn versteckt ? Das Event wird im Baum unterhalb der zu schaltenden Instanz angezeigt.
Das ist sogar noch übersichtlicher als wenn etwas in vielleicht sogar mehreren Script geschaltet wird ?
Michael

Genau da!
Wo muss ich ansetzen mit der Suche?
In Skripten normalerweise.
Warum sollte ich die Events in die Abfrage einbinden bzgl. o.g. Problem?
Wieviele Suchmöglichkeiten habe ich innerhalb und außerhalb von IPS?

Für den Anfänger im Lernprozess ist das ein komplizierter Weg, welchen er rückverfolgen müsste*, als wenn er alles „geordnet“ in auch mit anderen Mitteln darauf zurückgreifen könnte.

Nichtsdestotrotz wäre dein vorgeschlagener Weg auch eine Variante;)

  • w.o. erwähnt

Das ist wie das sinnvolle sortieren des logischen Baumes. Jeder hat dort andere Vorlieben und Herangehensweisen.

Selbiges gilt auch für logische Abläufe und Funktionen in IPS.
( Dazu fällt mir halt immer ein dass es gerade für Einsteiger keine Erläuterung dazu gibt wie IPS ‚tickt‘.)

Schön strukturiert in Scripten u.U. in Ordnern oder in Kategorien im Baum, oder nur komplexere Abfragen die so nicht gehen in Scripten unterbringen und einfaches wenn->dann direkt über ein Ereignis machen; das ist halt eine ‚Glaubenssache‘.
Gerade das hier mit Fenster->Licht ist so simpel, warum muss dafür jeder Neueinsteiger gleich ein PHP-Script schreiben wenn er vielleicht von PHP noch keine Ahnung hat.
Ganz zu schweigen von dem grundsätzlichen Verständnis von IPS.
Und darauf wollte ich eigentlich Aufmerksam machen; gerade weil die alten IPS-Hasen daran meisten nicht mehr denken (ich nehme mich da jetzt mal nicht aus); es geht auch ohne Script ganz billig in der Konsole zusammengeklickt.
Und so muss das IMHO auch sein :wink:
Darum hatte ich das noch mal aufzeigen wollen. Egal wie man sich nachher organisiert.
Michael