Ich habe einen Aeon Labs Multisensor installiert und lese damit die Temperatur aus. Über die ausgelesene Temperatur möchte ich einen Lüfter an- bzw. ausschalten je nach Temperatur. Zum schalten habe ich eine Schaltmodul von Aeon Labs im Lüfter zwischengeschalten.
Wenn die Temperatur unter 18° fällt, soll der Lüfter anlaufen, ansonsten soll der Lüfter aus sein bzw. abgeschalten werden.
Die ID für die Temperatur ist die „55720“ die ID für den Status des Schaltmoduls also an oder aus (Boolean) ist die „53704“.
Mithilfe der Befehlesreferenz unter ip-sypcon.de habe ich mir folgendes Skript geschrieben:
<?
// Holt den Temperaturwert von Sensor am Schraubenregal
$temperatur_schraubenregal = GetValueFloat(55720);
if ($temperatur_schraubenregal < 18)
{
SetValueBoolean(53704, true); // Heizlüfter anschalten
}
else
{
SetValueBoolean(53704, false); // Heizlüfter ausschalten
}
?>
Wenn ich das Skript über IP-Sypcon ausführe erscheint folgende Fehlermeldung:
Warning: Variable wurde als „Nur-Lesen“ markiert und kann nicht verändert werden in D:\IP-Symcon\scripts\27252.ips.php on line 12
Aber laut der Befehlsreferenz „Befehle in dieser Gruppe sind für den lesenden und schreibenden Zugriff auf IP-Symcon Variable“ sollte das doch funtktionieren, oder denke ich an dieser Stelle falsch bzw. zu einfach?
Mit der ID 17739 erscheint leider dieselbe Fehlermeldung.
Habs auch mal mit 0 und 1 getestet, dann erscheint eine andere Fehlermeldung.
True und False passt. Nur das mit der nur lesenden Variable macht mir das Leben schwer…
Um das Ganze etwas zu vereinfachen.
Nutze doch einfach die IPS-Bordmittel.
Ein Ereigniss brauchst du ja so oder so um etwas mit deinem Script anzufangen.
Und so geht es ganz ohne dabei PHP zu verwenden:
Doppelklick auf ID 13121
Reiter Ereignisse wählen
Klick auf ‚Neues augelöstes Ereignis‘
Unter ‚Variable‘ deine Temperatur-Variable auswählen
Auslöser auf 'Bei Grenzunterschreitung
Wert: 18 eintragen
Haken bei ‚Nachfolgende Ereignisse ausführen entfernen‘ (Damit nur der Befehl nur einmal beim Unterschreiten von größer 18 gesendet wird)
Weiter klicken
Funktion wählen : z.B. ZW_SwitchMode und Wert true für einschalten.
Weiter + Fertig klicken.
Ausschalten geht Identisch, nur mit 'Grenzüberschreitung und Funktions-Wert false.