Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Das ist jetzt nicht mehr vorhanden, klar an dieser Stelle wäre es ja falsch. Natürlich kann ich die Werte auch direkt aufrufen, ich habe diese aber anderen Variablen zugewiesen zum Test.
Auch wenn ich es direkt verwende wird nur eine 0 eingetragen.
Wozu überhaupt v1/v2?! Im EXEC-Teil kannst Du doch genauso auf die Eingänge zugreifen...
Also bei meinem LBS ging das nicht ohne vorher oben (function) die Werte abzugreifen. In der EXEC kannte er E[1] und E[2] nicht nach Fehlerlog. Was auch logisch ist, nach MEINEM Verständnis wird im EXEC eine Routine in Linux auf die Reise geschickt und woher sollte er dann E[1] und E[2] kennen.
2016-01-25 19:33:19
120188
?
17559
/usr/local/edomi/www/data/liveproject/lbs/EXE18000100.php: Code 8 / Zeile 1 / Undefined variable: E
ERROR
2016-01-25 19:33:19
120395
?
17559
/usr/local/edomi/www/data/liveproject/lbs/EXE18000100.php: Code 8 / Zeile 1 / Undefined variable: E
ERROR
Zuletzt geändert von WagoKlemme; 26.01.2016, 18:54.
So ist es! $E (oder wie auch immer man dieses Array nennen will) muss natürlich auch im EXEC-Teil vorher eingelesen werden - vgl. [LBS]-Abschnitt. Der EXEC-Teil ist vollkommen(!) unabhängig - siehe Doku (wird als vollkommen losgelöste eigene PHP-Instanz behandelt).
EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
###[HELP]### Einlesen eines 1 Wire Wertes der auf einem anderen Rechner ermittelt Wird. Dort muss owfs installiert sein. http://owfs.org/ Zusätzlich muss noch owhttpd laufen. Z.B auf einem Raspberry Pi Der in OWFS enthaltene Webserver owhttpd ermöglicht den Zugriff auf den 1-Wire Bus über einen Webbrowser. Die Hauptansicht zeigt die gefundenen Geräte und man hat die Möglichkeit innerhalb des 1-Wire Busses zu navigieren, Werte anzusehen und zu verändern. Siehe auch http://www.fischer-net.de/hausautomation/haustechnik/1-wire/40-1-wire-software-unter-linux-teil-2.html
E1 OW Adresse z.B. 28.381F85050000 E2 Was soll ausgelesen werden E3 IP Adresse des Rechners der ausgelesen wird E4 Port z.B. 2121 E5 Freigabe 0 = keine Abfrage 1 = Start einer Abfrage
###[/HELP]###
###[LBS]### <? function LB_LBSID($id) { if ($E=getLogicEingangDataAll($id)) { if ($E[1]['value']!=0 && $E[1]['refresh']==1) { $v1=$E[1]['value']; setLogicElementVar($id,1,$v1); } if ((! is_null($E[2]['value'])) && $E[2]['refresh']==1) { $v2=$E[2]['value']; setLogicElementVar($id,2,$v2); } if ((! is_null($E[3]['value'])) && $E[3]['refresh']==1) { $v3=$E[3]['value']; setLogicElementVar($id,3,$v3); } if ((! is_null($E[4]['value'])) && $E[4]['refresh']==1) { $v4=$E[4]['value']; setLogicElementVar($id,4,$v4); }
} if ($E[5]['value']=1 && $E[5]['refresh']==1) { callLogicFunctionExec(LBSID,$id); //EXEC-Script starten } } ?> ###[/LBS]###
Gut gut - aber das ist nur die halbe Miete Die zweite Hälfte sollte stets alle möglichen "Unzulänglichkeiten" abfangen - was ist z.B. wenn der Request scheitert bzw. Datenmüll liefert?
EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Gut gut - aber das ist nur die halbe Miete Die zweite Hälfte sollte stets alle möglichen "Unzulänglichkeiten" abfangen - was ist z.B. wenn der Request scheitert bzw. Datenmüll liefert?
Stimmt. aber dann kommt kein Datenmüll sondern einfach 0 für die Temperatur. Vielen Dank Christian für deine Hilfe, hat auch mir bei meinem nächsten LBS geholfen.
Ich würde noch ergänzen: set_time_limit(3); nach require, dann wird der Prozess nach 3s abgeschossen, und müllt dann auch nicht mehr.
hartmut
Ich danke Dir für deine Arbeit (ich weiß was da Zeit draufgeht), und dass Du auch deine Arbeit offenlegst. Ich habe auch 1-wire und bin sehr froh darüber.
Leider ist es hier nicht immer selbstverständlich seine Errungenschaften zu veröffentlichen, selbst nachdem man sie direkt darauf anspricht. Z.B. die Müllabfuhr von @Timberland.
War eher allgemein gemeint: Bei der LBS-Erstellung ist es durchaus wichtig, dass möglichst sämtliche Exceptions/Fehler abgefangen werden - nicht, dass am Ende der ganze Server abschmiert... Und glaube mir: Das ist mit PHP durchaus machbar
EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar