@thomas-braun Wie würde das denn aussehen?
Aktuell mache ich das mit
"if state=true then state=false else state=true" (kein original Quellcode :)).
@thomas-braun Wie würde das denn aussehen?
Aktuell mache ich das mit
"if state=true then state=false else state=true" (kein original Quellcode :)).
@thomas-braun Erledigt, danke! Habe im gleichen Atemzug noch den js-controller auf 5.x gehoben. Jetzt geht die Bewegung des "Fingers" wieder, wenn ich entweder den state "state" (Rolle Switch) von true auf false oder von false auf true setze. Ich frage mich, ob das so gewollt ist. Dann müsste ich ja zum Auslösen per JS immer den jeweils anderen boolschen Wert setzen.
@arteck Meinst du damit die Version 1.10.0? Muss ich dazu die stable deinstallieren oder kann ich die "drüber" installieren und die Adapter-settings bleiben?
Und grundsätzliche Frage: Werden die Datenpunkte gleich bleiben? Habe nämlich ein paar JS Skripte zu den DP am laufen.
@thomas-braun Ich war einfach zu beschränkt, ich habe die Admin Version eingetragen die auf der GUI oben rechts stand .
Systemdata | |
---|---|
Hardwaresystem: | Pi4 |
Arbeitsspeicher: | 4 GB |
Festplattenart: | SD-Karte |
Betriebssystem: | Raspbian |
Node-Version: | 18.19.0 |
Nodejs-Version: | 18.19.0 |
NPM-Version: | 10.2.3 |
Installationsart: | Script |
Image genutzt: | Ja |
Zigbee Adapter | 1.9.7 (eine installierte Instanz) |
Hallo zusammen,
ich habe mir den Fingerbot mit Zigbee Protokoll besorgt, da ich bereits einen funktionsfähigen ZigbeeStick/Adapter besitze.
Nun habe ich aber das Problem, dass ich zwar die Properties einstellen kann, aber keinen "Switch" zum Aktivieren des Fingerbots finde:
Anfangs hat es funktioniert, wenn ich den "state" toggelte (von true auf false und von false auf true). Ich finde das erstens nicht so gelungen (bei anderen devices reicht es ein "on" zu senden) und zweitens geht es mittlerweile nicht mehr. Im Zigbee-Binding ist mir dann aufgefallen, dass der Fingerbot nicht "verbunden" ist:
Ich habe dann das log-level mal erhöht und ich vermute mal, dass ein Problem beim "Toggeln" von "state" das hier ist:
Aber kurz darauf oder wenn ich manuell am Gerät selber den Taster drücke, kommt " TS0001 was last seen..", also erkennt der Adapter das Gerät per se.
Informationen zum Gerät:
Meine Fragen nun sind:
Kann mir da jemand bitte weiterhelfen?
@paul53 Danke, klappt jetzt!
@paul53 Oh, ja ich habe so meine Schwierigkeiten mit dem if-statement in js.
Es müsste:
if (variable=="string"){}
sein, oder?
Hallo,
ich bin eigentlich der Meinung, dass ich settimeout verstanden habe. Aber scheinbar doch nicht.
Hintergrund ist folgender: Ich habe eine NUKI Bridge auf einem ESP86. Die Bridge startet (warum auch immer) alle 2h neu, vermutlich ist das Wifi zu instabil. Bei jedem "offline" oder "online" sende ich mir eine Nachricht. Nun möchte ich aber die kurzen Restarts nicht ständig signalisiert bekommen. Da ein Neustart ca. 1min dauert hatte ich folgende Überlegung:
Wechselt der Status der Connection zur Bridge auf "offline", warte 1min und sende erst dann ein "Ja die Bridge ist offline", wenn sie immer noch nach Ablauf des Timers offline ist.
Die settimeout Funktion setzt ja erst asynchron nach Ablauf des Timers ein, daher wusste ich nicht, welchen Wert denn eigentlich in obj.state.val verbleibt und muss vmtl neu Auslesen. Es kann ja nämlich sein, dass der Wert in der Zwischenzeit sich ändert bzw die Funktion aufgrund dessen wieder aufgerufen wird.
on({id:idNUKIConnectionState, change:"ne"},function(obj){
// check if old value was not connected for more than 1 minute
var wait_ms=60*1000; // wait ms to check for state
if (!timeoutVar){ //check if timer is set
clearTimeout(timeoutVar); //reset timer
if (obj.state.val="offline"){
//sendTo('telegram.0','Timerstart.');
timeoutVar=setTimeout(function(){
// wait for possible restart
var newState=getState(idNUKIConnectionState).val;
if (newState="online"){
//sendTo('telegram.0','NUKI Bridge ist wieder '+ newState +' nach Ablauf des Timers.');
}
else{
sendTo('telegram.0','NUKI Bridge ist immer noch '+ newState +' nach Ablauf des Timers.');
}
timeoutVar=null;
},wait_ms);
}
else{
// online w/o timer
sendTo('telegram.0','NUKI Bridge ist '+ obj.state.val +'.');
}
}
else {
//sendTo('telegram.0','NUKI Bridge wurde während des Timers '+ obj.state.val +'.');
}
});
Also die Abfrage während des Timers funktionierte, aber als ich die Bridge ausgemacht habe und nie wieder an, kam keine Meldung. Kurz gesagt, ich würde gerne ein Toggeln für 1-2min ignorieren.
Wie wäre das denn richtig?
Danke euch im Voraus!
@gargano Oh super, vielen Dank für die Erklärung. Das ergibt natürlich Sinn, habe im ganzen Eifer des Gefechts die Regelung vergessen, die natürlich die Ist Temperatur benötigt.
Dann werde ich mich mal an das Aufsetzen von MQTT in iobroker wagen.
@gargano Vielen Dank für die schnelle Antwort. Scheinbar kenn ich mich doch noch nicht genug mit MQTT aus.
Wie meinst du das, du hast die Werte von der Homematic? Steh da noch ein wenig auf dem Schlauch. Mittels dem Adapter kann ich doch die Ventile steuern ("Stellwerte"), benötige ich dann noch die Soll/Istwerte?
Und wenn der Adapter installiert ist, erzeugt er die Datenpunkte selbst, oder muss ich die erstellen?