NEWS
CCU2 Fensterkontakt und ibroker script
-
Hallo zusammen
Habe auf dem rasPi ein script, dass das iphone weckt und per arp table check prüft welche iPhone dann am WLAN sind.
Wie kann ich dieses script starten, wenn der Homematic Fensterkontakt (Haustüre) auf [offen] wechselt ?
Danke
-
Ich gehe mal davon aus, dass Du ein Javascript meinst. Dann könntest Du das mit einem Subscribe lösen:
subscribe({id:whgWohnungstuerKontakt.state, val:true}, function (obj) { // was auch immer das Skript tun soll }
Bitte "whgWohnungstuerKontakt.state" durch die richtige Bezeichnung des Sensors ersetzen.
Gruß Gerhard
-
Hallo Gerhard
Besten Dank. Irgendwie klemmt das noch.
// main
subscribe({id:"hm-rega.0.3335".state, val:true}, function (obj) {
for (var i = 0; i < listIphones.length; i++) {
if (debug) {log(listIphones__.ip + "….." + listIphones__.name + "….." + listIphones__.mac)}
checkPresence(i);
}
});
ReferenceError: i is not defined at checkPresence (script.js.TEST.Script1:74:31) at Object. (script.js.TEST.Script1:86:7) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1207:48) at /opt/iobroker/node_modules/iobroker.javascript/javascript.js:541:48 at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2599:17) at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2618:28) at getObjectEnums (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:2618:28) at checkPatterns (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:537:17) at Object.utils.adapter.stateChange (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:215:17) at Object.that.states.States.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2036:80)______
-
probiere mal das Anführungszeichen nicht vor dem STATE zu setzen, sondern danach.
Ansonsten kannst Du Dir die IDs auch vom Editor einfügen lassen. Knopf ID einfügen
Gesendet von iPhone mit Tapatalk
-
Ja das ist soweit ok, dass ich keine Fehlermeldung mehr erhalte, das script läuft jedoch nicht an.
Weiter habe ich noch den Fehler, dass beim manuellen start des scripts jeder exec() Aufruf im log meldet
javascript.0 script.js.TEST.Script1: Error: Command failed: /bin/sh -c sudo hping3 -2 -c 2 -p 5353,62078 192.168
javascript.0 script.js.TEST.Script1: Error: Command failed: /bin/sh -c sudo ping 192.168
Hat das was mit common und global zu tun ?
-
Ich glaube Du hast mehre Themen.
Lass uns mal ran tasten und es in Teilprobleme zerlegen.
Auf den Fensterkontakt reagieren:
Das on() (entspricht subscribe():
Was für eine hm-rega oder hast Du da überhaupt?
Du kannst über hm-rpc direkt die ID des Kontakts auswählen.
Auf diese Id das on() und ein Log dahinter, damit Du siehst, ob das schon einmal klappt.
Zu global und Common:
In global kommen nur globale Skripte. D.h. Funktionen, die du in jedem anderen Skript nutzen kannst. Da sollte nichts rein.
Common ist ein Pfad wie jeder andere auch. Da kann das Skript rein oder an jeder anderen Stelle auch.
Gesendet von iPad mit Tapatalk
-
Ja das stimmt, sind schon mehrerer Themen
iobroker : 0.9.0
homematic-rega : 1.1.1
homematic-rpc : 1.1.3
JavaScript engine : 2.1.8
Bei scripts, ID einfügen sehe ich alle homematic Objekte.
Ich denke, dass da grundsätzlich ein Problem mit JavaScript besteht, das folgende cmd geht in der RasPi Konsole :
pi@raspberrypi01:~$ sudo hping3 -2 -c 2 -p 5353,62078 192.168.xxx.xxx -q
HPING 192.168.1.144 (wlan0 192.168.xxx.xxx
udp mode set, 28 headers + 0 data bytes
–- 192.168.xxx.xxx hping statistic ---
2 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
Dasselbe aus dem script
exec("sudo hping3 -2 -c 2 -p 5353,62078 192.168.xxx.xxx -q",function(err,stdout,stderr) {log(err,stdout,stderr)});
javascript.0 script.js.MyScripts.Script1: Unknown severity level "HPING 192.168.xxx.xxx (wlan0 192.168.xxx.xxx
udp mode set, 28 headers + 0 data bytes " by log of [Error: Command failed: /bin/sh -c sudo hping3 -2 -c 2 -p 5353,62078 192.168.xxx.xxx –- 192.168.xxx.xxx hping statistic --- 2 packets transmitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms ]
-
Ja das stimmt, sind schon mehrerer Themen
iobroker : 0.9.0
homematic-rega : 1.1.1
homematic-rpc : 1.1.3
JavaScript engine : 2.1.8
Bei scripts, ID einfügen sehe ich alle homematic Objekte.
Ich denke, dass da grundsätzlich ein Problem mit JavaScript besteht, das folgende cmd geht in der RasPi Konsole :
pi@raspberrypi01:~$ sudo hping3 -2 -c 2 -p 5353,62078 192.168.xxx.xxx -q
HPING 192.168.1.144 (wlan0 192.168.xxx.xxx
udp mode set, 28 headers + 0 data bytes
–- 192.168.xxx.xxx hping statistic ---
2 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
Dasselbe aus dem script
exec("sudo hping3 -2 -c 2 -p 5353,62078 192.168.xxx.xxx -q",function(err,stdout,stderr) {log(err,stdout,stderr)});
javascript.0 script.js.MyScripts.Script1: Unknown severity level "HPING 192.168.xxx.xxx (wlan0 192.168.xxx.xxx
udp mode set, 28 headers + 0 data bytes " by log of [Error: Command failed: /bin/sh -c[/color] sudo hping3 -2 -c 2 -p 5353,62078 192.168.xxx.xxx –- 192.168.xxx.xxx hping statistic --- 2 packets transmitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms ]
Die Statusänderung auf dem Fensterkontakt ergibt nichts in iobroker, keine logeinträge
on({id:"hm-rega.0.3335.state", val:true}, function(err,stdout,stderr) {log(err,stdout,stderr)});
I konw, just a beginner