NEWS
Ping als Auslöser
-
Hallo zusammen,
ich benötige mal eure Hilfe, da ich beim besten Willen nicht weiter komme.
Idee: Ich möchte gerne den Ping meines Samsung TV nutzen um meine Tischlampe und meine Schrankleuchte mit einem Wert von 28% ansteuern um sie während des Fernsehens zu dimmen. Dies soll aber nur von "sunset" bis "sunrise" funktionieren.
Allerdings gibt es zur Tischlampe auch einen Taster.
Was passiert nun? Während des angegebenen Zeitraums dimmt die Schrankbeleuchtung und die Tischlampe schön hoch oder runter. Allerdings sobald man den Taster benutzt und auf 100% stellt, dimmen die Lampen wieder auf 28% oder wenn der Fernseher nicht an ist auf 0%.
Frage: Ich weiß nicht wie ich das Problem lösen soll und wie ich den Status des Schalter abfrage und den Ping überschreibe.
Für jede Hilfe wäre ich dankbar.
Gruß
Frank
-
ganz verstehe ich nicht, was du da machst
aber vielleicht hilft es dir, wenn du weißt, wie man eine variable definiert bzw. abfrägt und prüft. in meinem fall wird speak nur ausgeführt wenn schlafen (!sleep) falsch ist!
ich benutze das auch um in node red zu wissen, wann ein flow überhaupt starten soll. in der unteren zeile bild1 wird der datenpunkt schlafen jedesmal bei änderung in eine nodered variable abgebildet (gültig im ganzen flow).
hier die funktion:````
flow.set('sleep',msg.payload.val);
return msg;anschliessend kann ich die variable benutzen um zu steuern - bild 2
var sleep1=flow.get('sleep');
if (!sleep1) {
return msg;
}hoffe das hilft [4447_2.png](/assets/uploads/files/4447_2.png) [4447_1.png](/assets/uploads/files/4447_1.png)
-
ganz verstehe ich nicht, was du da machst
aber vielleicht hilft es dir, wenn du weißt, wie man eine variable definiert bzw. abfrägt und prüft. in meinem fall wird speak nur ausgeführt wenn schlafen (!sleep) falsch ist!
ich benutze das auch um in node red zu wissen, wann ein flow überhaupt starten soll. in der unteren zeile bild1 wird der datenpunkt schlafen jedesmal bei änderung in eine nodered variable abgebildet (gültig im ganzen flow).
hier die funktion:````
flow.set('sleep',msg.payload.val);
return msg;anschliessend kann ich die variable benutzen um zu steuern - bild 2
var sleep1=flow.get('sleep');
if (!sleep1) {
return msg;
}hoffe das hilft `
Hallo,
ein kleiner Hinweis.
Für sehr einfache Befehle wie:
flow.set('sleep',msg.payload.val); return msg;
ist die function node "overkill". Da ist es besser das mit anderen Nodes zu realisieren.
Beispielsweise zum setzen eine Change Node:
und zum prüfen
var sleep1=flow.get('sleep'); if (!sleep1) { return msg; }
ist besser eine switch node:
Mir ist klar, dass ein Anfänger, der etwas Javascript code kann, erst mal zum function node greift (ging mir auch so). Man muss aber bedenke, das der javascript code im function node in einer Sandbox ausgeführt wird. Das kostet viele Ressourcen (RAM + Performance).
Daher ist die Empfehlung von IBM (hat Node-Red entwickelt), überall wo man auf die function node verzichten kann das über andere nodes zu realisieren.
Gruß
Robert
-
vielen dank für den tipp