NEWS
Shellys ("Alt und Plus") über MQTT Adapter
-
@mickym Hast Du mir noch einen Tipp wie ich die Abfrage hinbekomme bezüglich der zwei unterschiedlichen Events? Kann ich das JSONata in dem switch node so abändern das ich dort dann abzeigen kann je nachdem was gedrückt wurde?
-
@hotspot_2 Verstehe ich nicht ganz?
long_push
Bei den events solltest Du dóch folgendes Event bekommen?
{ "src": "shellypro4pm-f008d1d8b8b8", "dst": "user_1", "method": "NotifyEvent", "params": { "ts": 1631266629.79, "events": [ { "component": "input:0", "id": 0, "event": "long_push", "ts": 1631266629.79 } ] } }
Und Du brauchst doch nur den long-push um vom Automatik Modus auf den manuellen Modus umzustellen.
Oder bekommst Du das Event direkt in einem Datenpunkt Input:0 - Du weißt ich hab die Geräte ja nicht
-
@hotspot_2 Ich habs mal nicht mit einem Datenpunkt - sondern einer Flowvariable gemacht. Ich hab auch keine Ahnung ob Du mqtt richtig rausfilterts . Kannst natürlich auch wieder einen Datenpunkt toggeln.
Ich hab halt nach Beschreibung in die Inject Node so ein Notification Event Objekt genommen, wie es unten steht.
Ich toggle halt eine Flow variable mit true und false. Geht auch mit einem Datenpunkt im iobroker.
Das untenstehende Objekt auf einen long_push event mit der switch Node zu selektieren geht so:
so selektierst Du alle events der input:0 Komponente und kannst mit mehreren Ausgängen natürlich auch andere Events selektieren.
Mit dieser Anweisung:
payload.params.event[component="input:0"].event
filterst Du alles events die von der Komponente input:0 kommen und dann aus diesem Objekt selektierst Du die event Eigenschaft.
So kannst Du dann aus dem Notification Objekt - alle Eventtypen in der Switch Node direkt abfragen:
Wenn mehrere Events zu input:0 aufeinmal kommen, was aber unwahrscheinlich ist - dann wäre es ein Array - dann müsste man das ggf. noch abfangen.
-
@mickym Ich habe mal wieder ein kleines Problem wo ich keine Idee habe wie ich das lösen kann. Vielleicht hast ja Du einen Tipp.
Ich habe drei Bewegungsmelder die im Treppenhaus (3 Stockwerke) das Licht komplett anmachen wenn es dunkel ist. Nun würde ich gerne mit dem gleichen Flow abfangen das wenn es hell ist bei Bewegung im Keller auch nur das Licht im Keller angeht. Das klappt schon soweit, allerdings löst im Moment noch jeder drei Bewegungsmelder das Licht im Keller ist.
Gibt es eine einfach Möglichkeit festzustellen von welchem der drei Bewegungsmelder die Message kommt?
Danke schon mal.
-
@hotspot_2 klar im topic der Nachricht steht doch woher sie stammt. Falls du dir das topic mit der Get_node (Schalter) überschreibst, must du das ursprüngliche topic halt in eine andere Eigenschaft des Nachrichtenobjekts verschieben.
-
@mickym Hallo! Ich habe mal wieder eine Frage zum Thema NodeRED. Ich würde gerne diese URL absetzen in einem Flow "http://<ip_des_motion>/settings/actions?index=0&enabled=true&name=motion_on". Damit soll man die Blind Time der Shelly Motions zurücksetzen können damit sie gleich wieder reagieren und keine Wartezeiten entstehen, was gerade bei Steuerungen nicht so elegant ist. Ich hab auf Anhieb keine Node gefunden die einfach nur die URL absetzen kann ohne eine Antwort zu erwarten oder im payload weiterzugeben. Einfach nur URL absetzen genügt mir völlig.
Hast Du da einen Tipp?
-
@hotspot_2 http-Request Node kann das. Du musst die payload ja nicht nutzen
-
@mickym Ich würde gerne vermeiden das die Payload überschrieben wird, aber das kann ich ja dann auch anders lösen.
-
@hotspot_2 Die payload einfach vorher wegsichern in eine andere Eigenschaft und dann wiederherstellen oder wenn der Flow nicht darauf wartet kannst ja die http-request Node parallel schalten.
oder halt payload ignorieren, wenn nicht auf Ergebnis gewartet werden muss.
-
@mickym Super! Vielen Dank. So komm ich weiter.
-
@hotspot_2 Hab noch mal was ;-). Wenn ich die Inhalte von Flow Eigenschaften einsehen möchte also welcher Wert da gerade drin steht? Wie krieg ich das hin? Das geht doch nicht mit den debug-Nodes, oder?
-
@hotspot_2 Meinst Du den Flow Kontext ? Den siehst Du im Kontext Tab
-
@mickym Hallo! Ich habe zur Zeit ein Problem das mir ein Shelly (Licht) immer wieder mal angesteuert wird und ich kann mir nicht erklären warum. Gibt es da eine Möglichkeit das ich vor das MQTT Out Node irgendwas setze was mir die Payloads länger dokumentiert die da drüber gehen? Also so eine Art Log zu schreiben über längere Zeit?
Danke schon mal für einen Tipp dazu.
-
@hotspot_2 Einfach eine DebugNode nehmen und in die Systemkonsole schreiben (die DebugNode entsprechend sprechend benennen). Dann taucht alles im iobroker Protokoll auf.