NEWS
Sonos Gruppen in Visualisierung
-
Hallo zusammen,
ich bin noch relativ frisch bei Node-Red und bastle gerade so vor mich hin. Aber aktuell komme ich nicht weiter.
Ich bastle mir gerade eine Gruppen Verwaltung meiner Sonos Lautsprecher mit Jarvis zusammen. Unteranderem um Benennungen zu machen, habe ich das in Node-Red gemacht.
Ich möchte gerne unter der Bezeichnung Status gerne Wissen ob eine Sonos Gruppiert ist oder nicht. Im "Master" soll stehen "ist mit Küche Gruppiert" bei der Küche sollte stehen "ist mit Bad Gruppiert". Den zweiten Teil habe ich schon umgesetzt nur bei dem ersten Teil hängt es etwas. Da ich gerne alles unter Status unterbringen möchte.
Im Anhang habe ich mal 3 Beispiel Bilder.
Vielen Dank im Voraus für eure Unterstützung
Grüße
[ { "id": "6c59c825.3ab838", "type": "tab", "label": "SonosStatusGruppierung", "disabled": false, "info": "" }, { "id": "12855454.ffbda4", "type": "ioBroker in", "z": "6c59c825.3ab838", "name": "Küche", "topic": "sonos.0.root.192_168_178_63.coordinator", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "fireOnStart": "true", "x": 130, "y": 100, "wires": [ [ "4203bae7.ee66fc", "2b11b7da.e68b2" ] ] }, { "id": "15c4399e.3641b6", "type": "ioBroker in", "z": "6c59c825.3ab838", "name": "Bad", "topic": "sonos.0.root.192_168_178_64.coordinator", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "fireOnStart": "true", "x": 150, "y": 360, "wires": [ [ "73b08d87.559a6c" ] ] }, { "id": "ed02c8ae.e1b8d", "type": "ioBroker in", "z": "6c59c825.3ab838", "name": "Wohnzimmer", "topic": "sonos.0.root.192_168_178_74.coordinator", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "fireOnStart": "true", "x": 170, "y": 580, "wires": [ [ "1accd258.5c7f3e", "1b0a8dd8.ba7ed2" ] ] }, { "id": "4203bae7.ee66fc", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_63", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Gruppiert mit Bad", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_74", "fromt": "str", "to": "Gruppiert mit Wohnzimmer", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 100, "wires": [ [ "b21dcacb.dbd828" ] ] }, { "id": "73b08d87.559a6c", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_63", "fromt": "str", "to": "Gruppiert mit Küche", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_74", "fromt": "str", "to": "Gruppiert mit Wohnzimmer", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 360, "wires": [ [ "530f494a.4465c8" ] ] }, { "id": "1accd258.5c7f3e", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_74", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Gruppiert mit Bad", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_63", "fromt": "str", "to": "Gruppiert mit Küche", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 580, "wires": [ [ "1440e8f4.872d37" ] ] }, { "id": "b21dcacb.dbd828", "type": "ioBroker out", "z": "6c59c825.3ab838", "name": "StatusGruppeKueche", "topic": "Kueche", "ack": "false", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 920, "y": 100, "wires": [] }, { "id": "530f494a.4465c8", "type": "ioBroker out", "z": "6c59c825.3ab838", "name": "StatusGruppeBad", "topic": "Bad", "ack": "false", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 910, "y": 360, "wires": [] }, { "id": "1440e8f4.872d37", "type": "ioBroker out", "z": "6c59c825.3ab838", "name": "StatusGruppeWohnzimmer", "topic": "Wohnzimmer", "ack": "false", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 960, "y": 580, "wires": [] }, { "id": "2b11b7da.e68b2", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Gruppiert mit Küche", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_63", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 200, "wires": [ [ "530f494a.4465c8" ] ] }, { "id": "1b0a8dd8.ba7ed2", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Gruppiert mit Wohnzimmer", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_74", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 280, "wires": [ [ "530f494a.4465c8" ] ] } ]
-
@mrx-0 Hi, wann schmeißt denn welche deiner Input Node was raus? Bei Änderungen oder gibts da zeitliche Intervalle?
Hast du da schon mal ne Debug Node hinter die Input Nodes gehängt, um zu schauen welche Ausgaben kommen?
Du gibst bei Status Gruppe Bad von allen deiner 3 Input Node den Input aus. Wenn ich mir jetzt deinen Screenshot ansehe, kommt von Wohnzimmer 192.168.178.64 dann sollte durch die ChangeNode "Gruppier mit Wohnzimmer" rauskommen, aber von Bad kommt auch 192.168.178.64, dadurch kommt dann durch die Change Node dahinter "nicht gruppiert" -
@frankyboy73 Grüß dich,
Immer bei Änderungen wird was ausgegeben. Mit dem Debug Node hatte ich auch schon geschaut gehabt und es kommt genau das an was dann auch in Jarvis steht.
Edit: Hinter den Input Node habe ich noch kein Debug Node gemacht. Werde ich aber gleich mal anschauen. Danke dir.
Eigentlich bin ich mir ja ziemlich sicher das es so nicht funktionieren kann. Aber vielleicht hat ja jemand von euch eine Idee.
Ich hatte gehofft um eine Function Node herumzukommen. Ich denke mit genügend if when else abfragen komme ich dann auch irgendwann ans Ziel, aber dafür müsste ich mich dann halt noch mehr einlesen.
Oder aber ich mache den ganz einfachen Weg und Frage es über zwei Anzeigen in der Gruppen anzeige ab.
Grüße mrx
-
@mrx-0 Hi, mit den Sonos Ausgaben kenne ich mich nicht aus, ich weiß auch nicht was da bei welcher Gruppierung aus deinen Input Nodes rauskommt.
Mich wundert es nur ein bisschen das du den "StatusGruppeKüche" nur mit mit "Küche" ansteuerst und den "StatusGruppeWohnzimmer" nur mit "Wohnzimmer" ansteuerst, bei "StatusGruppeBad" allerdings mit allen 3 (Küche,Bad,Wohnzimmer) draufgehst. Müsste Bad nicht selber ausgeben ob gruppiert oder nicht? -
@mrx-0 Wenn die Ausgabe von Bad allerdings nicht relevant sein sollte und du nur die Ausgaben von Küche und Wohnzimmer brauchst, könntest du das mit Get Nodes und Switches lösen. Bei Änderungen wird "Küche" abgefragt, ist Küche mit Bad Gruppiert (192_168_178_64) dann setze Topic auf "Gruppiert mit Küche" andernfalls wird Status "Wohnzimmer" abgefragt, ist Wohnzimmer mit Bad Gruppiert (192_168_178_64) setzte Topic auf "Gruppiert mit Wohnzimmer" andernfalls setze Topic auf "Nicht Gruppiert"
[ { "id": "6c59c825.3ab838", "type": "tab", "label": "SonosStatusGruppierung", "disabled": false, "info": "" }, { "id": "12855454.ffbda4", "type": "ioBroker in", "z": "6c59c825.3ab838", "name": "Küche", "topic": "sonos.0.root.192_168_178_63.coordinator", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "fireOnStart": "true", "x": 130, "y": 100, "wires": [ [ "4203bae7.ee66fc", "72d78dab.e85264" ] ] }, { "id": "ed02c8ae.e1b8d", "type": "ioBroker in", "z": "6c59c825.3ab838", "name": "Wohnzimmer", "topic": "sonos.0.root.192_168_178_74.coordinator", "payloadType": "value", "onlyack": true, "func": "all", "gap": "", "fireOnStart": "true", "x": 170, "y": 580, "wires": [ [ "1accd258.5c7f3e", "72d78dab.e85264" ] ] }, { "id": "4203bae7.ee66fc", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_63", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Gruppiert mit Bad", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_74", "fromt": "str", "to": "Gruppiert mit Wohnzimmer", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 100, "wires": [ [ "b21dcacb.dbd828" ] ] }, { "id": "1accd258.5c7f3e", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_74", "fromt": "str", "to": "Nicht Gruppiert", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_64", "fromt": "str", "to": "Gruppiert mit Bad", "tot": "str" }, { "t": "change", "p": "payload", "pt": "msg", "from": "192_168_178_63", "fromt": "str", "to": "Gruppiert mit Küche", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 440, "y": 580, "wires": [ [ "1440e8f4.872d37" ] ] }, { "id": "b21dcacb.dbd828", "type": "ioBroker out", "z": "6c59c825.3ab838", "name": "StatusGruppeKueche", "topic": "Kueche", "ack": "false", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 920, "y": 100, "wires": [] }, { "id": "530f494a.4465c8", "type": "ioBroker out", "z": "6c59c825.3ab838", "name": "StatusGruppeBad", "topic": "Bad", "ack": "false", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 990, "y": 320, "wires": [] }, { "id": "1440e8f4.872d37", "type": "ioBroker out", "z": "6c59c825.3ab838", "name": "StatusGruppeWohnzimmer", "topic": "Wohnzimmer", "ack": "false", "autoCreate": "true", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 960, "y": 580, "wires": [] }, { "id": "f250d0b9.33af9", "type": "ioBroker get", "z": "6c59c825.3ab838", "name": "Wohnzimmer", "topic": "sonos.0.root.192_168_178_74.coordinator", "attrname": "payload", "payloadType": "value", "x": 290, "y": 340, "wires": [ [ "b551bd60.cc17c" ] ] }, { "id": "a9bd5bce.baee08", "type": "switch", "z": "6c59c825.3ab838", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "192_168_178_64", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 350, "y": 240, "wires": [ [ "f9a79da6.e4fc6" ], [ "f250d0b9.33af9" ] ] }, { "id": "b551bd60.cc17c", "type": "switch", "z": "6c59c825.3ab838", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "192_168_178_64", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 450, "y": 340, "wires": [ [ "7e26b1e3.2520d" ], [ "3f5e77e8.7dfd68" ] ] }, { "id": "72d78dab.e85264", "type": "ioBroker get", "z": "6c59c825.3ab838", "name": "Küche", "topic": "sonos.0.root.192_168_178_63.coordinator", "attrname": "payload", "payloadType": "value", "x": 190, "y": 240, "wires": [ [ "a9bd5bce.baee08" ] ] }, { "id": "f9a79da6.e4fc6", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Gruppiert mit Küche", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 240, "wires": [ [ "530f494a.4465c8" ] ] }, { "id": "7e26b1e3.2520d", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Gruppiert mit Wohnzimmer", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 670, "y": 300, "wires": [ [ "530f494a.4465c8" ] ] }, { "id": "3f5e77e8.7dfd68", "type": "change", "z": "6c59c825.3ab838", "name": "", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "Nicht Gruppiert", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 690, "y": 360, "wires": [ [ "530f494a.4465c8" ] ] } ]
Vielleicht funktioniert das ja für deine Zwecke. Wie gesagt, ich kenne mich mit dem Sonos Kram nicht aus.
-
@frankyboy73 Ich habe mich jetzt auch nochmal Intensiver damit beschäftigt. Es wird leider nicht so funktionieren wie ich es mir vorgestellt habe.
Ich wollte mir in der Visualiesierung einfach die zweite Zeile sparen, wegen der übersichtlichtkeit.
Aber sobald ich die Sonose Gruppiere wird ja in den Datenpunkt vom coordinator die IP des Master geschrieben.
Ich habe mir jetzt zwei Zeilen angelegt und somit klappt es auch.Trotzdem vielen Dank für deine Mühe.
Grüße