NEWS
[GELÖST] javascript adapter - skript probleme
-
Hi Leute,
ich habe folgendes Skript von Homematic Guru verwendet:
// ioBroker-Script für Homematic Bluetooth Anwesenheitserkennung by Homematic-Guru.de // https://homematic-guru.de/homematic-bluetooth-anwesenheitserkennung var tuerkontakt = "hm-rpc.0.NEQ0123456.1.STATE"; /*Hier die ID des Türkontakts eintragen*/ var anwesenheit = "hm-rega.0.10517"; /*Hier die ID der Anwesenheitsvariable eintragen*/ var min = 15; /*Hier die Zeitspanne der aktiven Abwesenheitserkennung nach Türschließung*/ var inrange = true; /*Falls kein Türkontakt vorhanden auf true setzen*/ on(tuerkontakt, function(obj) { if (obj.newState.val === false) { inrange = true; setTimeout(function() { inrange = false; }, min * 60 * 1000); } }); on("radar2.0.countHere", function(obj) { if (obj.newState.val === 0) { if (inrange === true) { setState(anwesenheit,false); } else { log("Radar CountHere 0 nach Zeit abgelaufen", "warn"); } } if (obj.newState.val > 0) { setState(anwesenheit,true); } }); // Script Ende
Der Radar2 Funktioniert soweit einwandfrei. Allerdings wird die Systemvariable auf meiner Homematic CCU3 nicht von "nicht anwesend" auf "anwesend" umgeschrieben. Könnt ihr mir sagen woran das liegt?
Danke für die Hilfe
-
@ginvibe
Habe das gerade versucht nachzustellen, aber geht bei mir auch nicht, allerdings bin ich mir garnicht sicher ob das rückwärts (Iob -> Systemvariable CCU) überhaupt geht?Hat es einen Grund warum du dir nicht eine Variable im Iobroker anlegst und diese dann änderst?
-
@Peoples said in javascript adapter - skript probleme:
@ginvibe
Habe das gerade versucht nachzustellen, aber geht bei mir auch nicht, allerdings bin ich mir garnicht sicher ob das rückwärts (Iob -> Systemvariable CCU) überhaupt geht?Hat es einen Grund warum du dir nicht eine Variable im Iobroker anlegst und diese dann änderst?
eigentlich gibt es keinen grund außer das ich in der thematik sehr neu bin, und mich damit fast garnicht auskenne.
-
@ginvibe
Also ich mache das immer so ich werte die Sensoren - Systemvariablen - Aktoren meines Homematic-Systems aus. Habe aber alle Scripte und Variablen nur im Iobroker.So hättest du es im IoBroker
// ioBroker-Script für Homematic Bluetooth Anwesenheitserkennung by Homematic-Guru.de // https://homematic-guru.de/homematic-bluetooth-anwesenheitserkennung var instanz = 'javascript.0'; instanz = instanz + '.'; // Instanz die verwendet wird // var pfad0 = 'Anwesenheit'; pfad0 = pfad0 + '.'; // Pfad der zur Anwesenheit // Anlegen einer Variablen: javascript.0.Anwesenheit.Status // findest du dann in den Objekten - Javascript - Ordner Anwesenheit - Name Status createState(instanz + pfad0 + 'Status', {def: 'false',type: 'boolean',name: 'Anwesenheit min. eines Bewohners'}); var tuerkontakt = "hm-rpc.0.NEQ0123456.1.STATE"; /*Hier die ID des Türkontakts eintragen*/ var anwesenheit = "instanz + pfad0 + 'Status'"; /*Hier die ID der Anwesenheitsvariable eintragen*/ var min = 15; /*Hier die Zeitspanne der aktiven Abwesenheitserkennung nach Türschließung*/ var inrange = true; /*Falls kein Türkontakt vorhanden auf true setzen*/ on(tuerkontakt, function(obj) { if (obj.newState.val === false) { inrange = true; setTimeout(function() { inrange = false; }, min * 60 * 1000); } }); on("radar2.0.countHere", function(obj) { if (obj.newState.val === 0) { if (inrange === true) { setState(anwesenheit,false); } else { log("Radar CountHere 0 nach Zeit abgelaufen", "warn"); } } if (obj.newState.val > 0) { setState(anwesenheit,true); } }); // Script Ende
-
@ginvibe
Kann die SV "hm-rega.0.10517" manuell im Reiter "Objekte" auf true gesetzt werden und es kommt in der CCU an ? -
@paul53
Ich hab da testweise eine Angelegt und bei mir geht da nicht, soll das wohl funktionieren?Edit
hab den Rega neu gestartet danach gings auch bei mir -
@paul53 said in javascript adapter - skript probleme:
@ginvibe
Kann die SV "hm-rega.0.10517" manuell im Reiter "Objekte" auf true gesetzt werden und es kommt in der CCU an ?ja das ist möglich und wird auch direkt in der ccu umgesetzt.
-
@ginvibe sagte:
wird auch direkt in der ccu umgesetzt.
Dann muss es auch mit dem Skript funktionieren. Das Skript ist gestartet und die Javascript-Instanz läuft nicht im Debug-Modus ?
-
@paul53 said in javascript adapter - skript probleme:
@ginvibe sagte:
wird auch direkt in der ccu umgesetzt.
Dann muss es auch mit dem Skript funktionieren. Das Skript ist gestartet und die Javascript-Instanz läuft nicht im Debug-Modus ?
das skript ist aufjedenfall gestartet. Es läuft auch nicht im Debug Modus.
EDIT: meine Frau ist eben nachhause gekommen, die SV hat sich nicht auf Anwesend geändert. Manuell im IOBroker geht es aber. Der Radar2 hats sofort erkannt und die werte auf True gesetzt. Nur das Skript hat das nicht an die SV weitergeleitet.
-
@ginvibe
Dein Türkontakt-State ändert sich in den Objekten auch wenn die Türe auf und zu gemacht wird? -
@ginvibe sagte:
Der Radar2 hats sofort erkannt und die werte auf True gesetzt.
Der Wert des Datenpunktes "radar2.0.countHere" hat sich um 1 erhöht ?
-
@Peoples said in javascript adapter - skript probleme:
@ginvibe
Dein Türkontakt-State ändert sich in den Objekten auch wenn die Türe auf und zu gemacht wird?Ich habe keinen Tür Kontakt.
-
@paul53 said in javascript adapter - skript probleme:
@ginvibe sagte:
Der Radar2 hats sofort erkannt und die werte auf True gesetzt.
Der Wert des Datenpunktes "radar2.0.countHere" hat sich um 1 erhöht ?
Unter Objekte > Radar2.0 find ich keine Datei mit dem Namen "countHere".
Vielleicht liegt es daran? Ich hab die bisher nicht erstellt, weil ich nicht weiß wie und was drin stehen sollte.
-
@ginvibe
Wahrscheinlich liegt es daran, denn du triggerst ja auf den Datenpunkt.on("radar2.0.countHere", function(obj)
Welcher Datenpunkt ändert sich denn wenn jemand nach Hause kommt?
-
@Peoples said in javascript adapter - skript probleme:
@ginvibe
Wahrscheinlich liegt es daran, denn du triggerst ja auf den Datenpunkt.on("radar2.0.countHere", function(obj)
Welcher Datenpunkt ändert sich denn wenn jemand nach Hause kommt?
Ich habe nur die Daten Punkte:
ändern tun sich nur die Punkte
allHere
isHere
notHere -
@ginvibe
schau mal ob es folgendes objekt gibt
javascript.0.hm-rega.0.10517oder mal
var anwesenheit = "hm-rega.0.10517";
in zeile 17 packen. -
@tombox said in javascript adapter - skript probleme:
@ginvibe
schau mal ob es folgendes objekt gibt
javascript.0.hm-rega.0.10517Das Objekt existiert nicht unter Javascript.0. sondern eben nur im Ordner hm-rega.0.
@tombox said in javascript adapter - skript probleme:
oder mal
var anwesenheit = "hm-rega.0.10517";
in zeile 17 packen.Das versuche ich, sobald ich zu Hause bin. Mitm Handy kann ich das nicht vernünftig eingeben.
-
@ginvibe sagte in javascript adapter - skript probleme:
Ich habe nur die Daten Punkte:
Der Datenpunkt "radar2.0._nHere" ändert sich nicht ? Da er eine Zahl enthält, vermute ich, dass er die Zahl der anwesenden Personen angeben soll. Ändere mal den Trigger auf
on("radar2.0._nHere", function(obj)
-
@paul53 said in javascript adapter - skript probleme:
@ginvibe sagte in javascript adapter - skript probleme:
Ich habe nur die Daten Punkte:
Der Datenpunkt "radar2.0._nHere" ändert sich nicht ? Da er eine Zahl enthält, vermute ich, dass er die Zahl der anwesenden Personen angeben soll. Ändere mal den Trigger auf
on("radar2.0._nHere", function(obj)
Genau das, werde ich Zuhause Mal Testen.
-
@paul53 said in javascript adapter - skript probleme:
@ginvibe sagte in javascript adapter - skript probleme:
Ich habe nur die Daten Punkte:
Der Datenpunkt "radar2.0._nHere" ändert sich nicht ? Da er eine Zahl enthält, vermute ich, dass er die Zahl der anwesenden Personen angeben soll. Ändere mal den Trigger auf
on("radar2.0._nHere", function(obj)
der Datenpunkt "radar2.0._nHere" hat sich auf den Wert 1 geändert. den Trigger habe ich umgeändert, hat aber leider nichts bewirkt.