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
<?
//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);
}
?>
<?
//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.
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?
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.
Oder genauer gesagt ein Ereignis für dieses Script anlegen bei Variablenänderung der Variablen vom Fensterkontakt.
Ich glaube, das hilft ihm etwas mehr.
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.
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.
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
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 ), 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;)
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
Darum hatte ich das noch mal aufzeigen wollen. Egal wie man sich nachher organisiert.
Michael