Mmmh, scheint wirklich etwas „komplizierter“ zu sein …
Ich zitiere mich mal eben selbst:
Verstanden …
Kann ich das für mich so zusammenfassen: Geräte, die über API antriggerbar sind, gehen mit Homee zur Zeit?!
Ja, sofern es eine über Webhook antriggerbare API ist. Integrierte IP-ansprechbare Geräte auch direkt via HG-Logik.
Ich hab’s jetzt nochmals ausprobiert und so klappt es. Wird wohl ein Schreibfehler oder sonstiges gewesen sein. Danke @anon11314990
Hallo zusammen,
ich schalte meinen Bose SoundTouch nun über WebHooks - funktioniert erstaunlich gut.
Beispiel: Findet 1 Stunde lang keine “Bewegung” im Wohnzimmer statt wird über WebHook das Radio ausgeschaltet.
Nur: Was ist, wenn ich aus dem Haus gehe und das Radio selbst ausgeschaltet habe. Nach einer Stunde geht dieses nach meinem Verständnis wieder an - richtig?
Wie kann ich definiert ein-/ausschalten? Gibt es hier getrennte Befehle?
Grüße
Stefan
Nope, gibt’s nicht. Du könntest nen WallPlug mit Leistungsmessung nehmen - dann weißt du, ob der Bose grad an ist oder nicht, und das kannst du entsprechend in dein Ausschalt HG aufnehmen (und nur, wenn Verbrauch unter x Watt ist)
Hat jemand eine bessere Idee?
Hallo zusammen,
wäre es nicht möglich den “aktuellen” Titel zu prüfen um zu wissen ob der SoundTouch an ist oder nicht. Oder die aktuelle Lautstärke?
Diese Funktionen sollen wohl gehen:
PLAY
PAUSE
STOP
PREV_TRACK
NEXT_TRACK
THUMBS_UP
THUMBS_DOWN
POWER
MUTE
VOLUME_UP
VOLUME_DOWN
PRESET_1
PRESET_2
PRESET_3
PRESET_4
PRESET_5
PRESET_6
AUX_INPUT
SHUFFLE_OFF
SHUFFLE_ON
REPEAT_OFF
REPEAT_ONE
REPEAT_ALL
PLAY_PAUSE
ADD_FAVORITE
REMOVE_FAVORITE
Gehen solche Abfragen?
Grüße
Stefan
Hallo @blas, mit dem Umweg über Node Red ist es möglich, habe ich heute auch so umgesetzt.
mit GET “http://IP:8090/now_playing” kannst du den Status erfragen, der kommt in XML-Format zurück.
Ist das Gerät ausgeschaltet ist source=“STANDBY” ansonsten z.B. “TUNEIN” oder “SPOTIFY” oder was sonst gerade abgespielt wird. Dies nutze ich um den Status des Lautspreches zu bestimmen:
==STANDBY -> Ausgeschaltet; !=STANDBY -> Eingeschaltet. Das ganze in Verbindung mit einem WEMO Node red Switch, welcher den Zustand des Lautspreches darstellt (EIN/AUS).
Den Status frage ich alle 30s ab.
Den WEMO switch nutze ich dannn als Bedingung.
Funktioniert soweit ganz gut.
Jetzt weiß ich auch wieso alle meinen der Rückkanal zum Wemo wäre so einfach. Ich habe bei mir keinen Wemo Output Node!
Muss man das irgendwie gesondert installieren oder steht der sonst unter Output?
Habe meine Node Red Flows nochmals überarbeitet, So dass ich die Lautsprecher direkt über die WEMO switches in homee Ein-und Ausschalten kann.
Der erste Teil fragt den Status alle 30s ab und setzt den Schalter auf an und aus, je nach Status der Lautsprecher. (In meinen Fall mit 2 Lautsprechern)
[
{
"id": "850d80dd.9627b8",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchKueche_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.51:8090/now_playing",
"tls": "",
"x": 338.5,
"y": 56,
"wires": [
[
"7e3b1bbf.6cbfdc"
]
]
},
{
"id": "7e3b1bbf.6cbfdc",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing Küche",
"attr": "kueche",
"chr": "",
"x": 574,
"y": 57,
"wires": [
[
"c15a6724.082bd",
"ca5b9827.825ad8"
]
]
},
{
"id": "c15a6724.082bd",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 779,
"y": 28,
"wires": [
[
"d7edad16.3a76a"
]
],
"outputLabels": [
"on"
]
},
{
"id": "28ba2c6c.fccd34",
"type": "wemo out",
"z": "fe2726e.de82ed8",
"name": "SoundTouch_Kueche",
"device": "605b0264.099f14",
"label": "SoundTouch_Kitchen",
"x": 1191,
"y": 55,
"wires": []
},
{
"id": "d7edad16.3a76a",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set Küche ON",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "on",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 982,
"y": 27,
"wires": [
[
"28ba2c6c.fccd34"
]
]
},
{
"id": "ca5b9827.825ad8",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 788,
"y": 91,
"wires": [
[
"148ab7ba.d1e52"
]
],
"outputLabels": [
"on"
]
},
{
"id": "148ab7ba.d1e52",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set Küche OFF",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "off",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 982,
"y": 91,
"wires": [
[
"28ba2c6c.fccd34"
]
]
},
{
"id": "a242f64d.660f88",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchSZ_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.55:8090/now_playing",
"tls": "",
"x": 331.5,
"y": 156,
"wires": [
[
"d8f5efaa.be19e"
]
]
},
{
"id": "d8f5efaa.be19e",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing SZ",
"attr": "sz",
"chr": "",
"x": 554,
"y": 157,
"wires": [
[
"5b87b86e.dd1f58",
"f79321c5.bc20d8"
]
]
},
{
"id": "5b87b86e.dd1f58",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 776.5,
"y": 144,
"wires": [
[
"752dbab3.dca39c"
]
]
},
{
"id": "f79321c5.bc20d8",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 780.5,
"y": 191,
"wires": [
[
"513f63d2.a268e4"
]
]
},
{
"id": "752dbab3.dca39c",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set SZ ON",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "on",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 967.5,
"y": 144,
"wires": [
[
"a0e319de.4f173"
]
]
},
{
"id": "513f63d2.a268e4",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set SZ OFF",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "off",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 966.5,
"y": 191,
"wires": [
[
"a0e319de.4f173"
]
]
},
{
"id": "a0e319de.4f173",
"type": "wemo out",
"z": "fe2726e.de82ed8",
"name": "",
"device": "4e36d21b.f79c7c",
"label": "SoundTouch_SZ",
"x": 1186,
"y": 161,
"wires": []
},
{
"id": "119ac1b2.540026",
"type": "inject",
"z": "fe2726e.de82ed8",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "30",
"crontab": "",
"once": false,
"x": 95,
"y": 113,
"wires": [
[
"850d80dd.9627b8",
"a242f64d.660f88"
]
]
},
{
"id": "605b0264.099f14",
"type": "wemo-dev",
"z": "",
"device": "87858103",
"name": "SoundTouch_Kitchen"
},
{
"id": "4e36d21b.f79c7c",
"type": "wemo-dev",
"z": "",
"device": "87858101",
"name": "SoundTouch_SZ"
}
]
Der zweite Teil schaltet die Lautsprecher mit Hilfe der WEMO switches ein und aus.
[
{
"id": "54c20eb6.8184a8",
"type": "wemo-emulator",
"z": "fe2726e.de82ed8",
"name": "SoundTouch_SZ",
"friendlyName": "SoundTouch_SZ",
"serial": "87858101",
"port": "42399",
"onTopic": "SoundTouch_SZ/On",
"onPayload": "on",
"offTopic": "SoundTouch_SZ/Off",
"offPayload": "off",
"x": 103,
"y": 431,
"wires": [
[
"3b650958.60950e",
"c9aa24d1.156ab"
]
]
},
{
"id": "52960221.3540ac",
"type": "wemo-emulator",
"z": "fe2726e.de82ed8",
"name": "SoundTouch_Kitchen",
"friendlyName": "SoundTouch_Kitchen",
"serial": "87858103",
"port": "41312",
"onTopic": "SoundTouch_Kitchen/on",
"onPayload": "on",
"offTopic": "SoundTouch_Kitchen/off",
"offPayload": "off",
"x": 106.5,
"y": 321,
"wires": [
[
"24d81544.7a5f7a",
"2b09ffc0.c12558"
]
]
},
{
"id": "ef86c8b8.e74e2",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchKueche_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.51:8090/now_playing",
"tls": "",
"x": 534,
"y": 276,
"wires": [
[
"bb3d053b.650c7"
]
]
},
{
"id": "bb3d053b.650c7",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing Küche",
"attr": "kueche",
"chr": "",
"x": 785,
"y": 273,
"wires": [
[
"e2955b39.10f42"
]
]
},
{
"id": "24d81544.7a5f7a",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn On",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "on",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 323,
"y": 274,
"wires": [
[
"ef86c8b8.e74e2"
]
]
},
{
"id": "e2955b39.10f42",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 1006,
"y": 273,
"wires": [
[
"cc9b446d.8a4db8"
]
]
},
{
"id": "6713a787.b4fc9",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "Post/key Küche",
"method": "POST",
"ret": "txt",
"url": "http://192.168.178.51:8090/key",
"tls": "",
"x": 1360,
"y": 306,
"wires": [
[]
]
},
{
"id": "cc9b446d.8a4db8",
"type": "function",
"z": "fe2726e.de82ed8",
"name": "Power",
"func": "var value = msg.payload;\n\nmsg.payload = '<key state=\"press\" sender=\"Gabbo\">POWER</key>';\nmsg.headers = {'content-type':'application/xml'};\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1191,
"y": 306,
"wires": [
[
"6713a787.b4fc9"
]
]
},
{
"id": "2b09ffc0.c12558",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn Off",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "off",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 316,
"y": 344,
"wires": [
[
"cf7268d7.f3a6c8"
]
]
},
{
"id": "cf7268d7.f3a6c8",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchKueche_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.51:8090/now_playing",
"tls": "",
"x": 531,
"y": 345,
"wires": [
[
"5851806c.16ee78"
]
]
},
{
"id": "5851806c.16ee78",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing Küche",
"attr": "kueche",
"chr": "",
"x": 783,
"y": 344,
"wires": [
[
"e56ded77.de6348"
]
]
},
{
"id": "e56ded77.de6348",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 1005,
"y": 343,
"wires": [
[
"cc9b446d.8a4db8"
]
],
"outputLabels": [
"on"
]
},
{
"id": "3b650958.60950e",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn On",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "on",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 314,
"y": 408,
"wires": [
[
"8058361c.f8449"
]
]
},
{
"id": "c9aa24d1.156ab",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn Off",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "off",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 323,
"y": 467,
"wires": [
[
"3cfc26e9.817092"
]
]
},
{
"id": "8058361c.f8449",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchSZ_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.55:8090/now_playing",
"tls": "",
"x": 531,
"y": 405,
"wires": [
[
"bd8b55ad.be928"
]
]
},
{
"id": "3cfc26e9.817092",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchSZ_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.55:8090/now_playing",
"tls": "",
"x": 533,
"y": 470,
"wires": [
[
"62ac2e8.91b65d"
]
]
},
{
"id": "bd8b55ad.be928",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing SZ",
"attr": "sz",
"chr": "",
"x": 762,
"y": 405,
"wires": [
[
"e74b15d6.d88018"
]
]
},
{
"id": "62ac2e8.91b65d",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing SZ",
"attr": "sz",
"chr": "",
"x": 780,
"y": 472,
"wires": [
[
"ad5149ef.3d40b"
]
]
},
{
"id": "ad5149ef.3d40b",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 992,
"y": 471,
"wires": [
[
"2aefce1.2f878b2"
]
]
},
{
"id": "e74b15d6.d88018",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 990,
"y": 406,
"wires": [
[
"2aefce1.2f878b2"
]
]
},
{
"id": "85330e73.e472",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "Post/key SZ",
"method": "POST",
"ret": "txt",
"url": "http://192.168.178.55:8090/key",
"tls": "",
"x": 1343,
"y": 435,
"wires": [
[]
]
},
{
"id": "2aefce1.2f878b2",
"type": "function",
"z": "fe2726e.de82ed8",
"name": "Power",
"func": "var value = msg.payload;\n\nmsg.payload = '<key state=\"press\" sender=\"Gabbo\">POWER</key>';\nmsg.headers = {'content-type':'application/xml'};\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1186,
"y": 436,
"wires": [
[
"85330e73.e472"
]
]
}
]
Funktioniert bei mir sehr zuverlässig. Habe somit immer den aktuellen Status der Lautsprecher in homee und kann diese über homee zuverlässig Ein-und Ausschalten.
Was ich jedoch bei der Gelegenheit festgestellt habe, ist dass die Statusänderung der WEMO switches in homee mit ca. 30s Verzögerung ankommt. Ob dass jetzt an homee oder Node red liegt kann ich nicht beurteilen. Da die Lautsprecher in der Regel nicht im Minutentakt Ein-und Ausgeschaltet werden stellt es kein Problem dar.
Hallo nochmals,
also verstehe ich das richtig: Du schaltest den Bose SoundTouch “komplett” über eine schaltbare Steckdose aus/ein
=> Ist das dann nicht etwas “träge” - bis eben der SoundTouch wieder hoch gefahren ist …
- Was ist Red Node?
- Kann ich das auch ohne eine schaltbare Steckdose machen?
Grüße Stefan
Hallo @blas,
nein ich verwende keine Schaltbare Steckdosen, ich verwende simulierte/virtuele Wemo Switches in node red erzeugt, wie in den Beiträgen weiter oben beschrieben. Mit schaltbaren Steckdosen, habe ich mal gestartet und dann zu der node red Lösung gewechselt.
Node-RED
Node-RED ist ein Programmiertool dessen Editor per Browser aufgerufen werden kann. Er bietet eine einfache Möglichkeit über Knotenpunkte (nodes) Datenflüsse (flows) zu erstellen.
Seine schlanke Runtime-Umgebung, basierend auf Node.js, läuft auch auf kleiner Hardware (Rpi) wunderbar.
https://nodered.org/
Mit der von mir beschriebenen node red Lösung.
Oder ganz primitiv mit HG’s und webhooks auch weiter oben beschrieben, mit dem Nachteil, dass der aktuelle Status AN/AUS in homee nicht bekannt ist.
Falls Du weitere Hilfe bei der Umzetung brauchst, bitte etwas konkreter werden.
Ok, jetzt wird das ganze “etwas klarer” …
Aber: Wie kann ich nun diese virtuelle Umgebung mit Homee verknüpfen.
Mir fehlt hier das generelle Verständnis was das dann mit Homme zu tun hat, wie ich es einbinden kann usw.
Hast Du hier eine “Anleitung”?
Da wie es scheint, du noch kein node red am laufen hast, sollten wir damit starten.
Die einfachste Möglichkeit sollte das homeean Projekt sein:
Als Hardware benötigst Du noch einen Raspberry Pi
Z.b. bei Amazon als StarterKit erhältlich:
Nach der erfolgreichen Inbetriebnahme des Pi’s und der Installation von node red,
kannst Du über den Browser node red aufrufen (IP-Raspberry:1880)
Um Wemo unter node red nutzen zu können musst noch zwei module installieren:
Oben rechts auf Menü klicken dann Manage palette klicken
In den Reiter Install wechseln und diese 2 module installieren:
Danach kannst Du über Import Clipboard meine Flows importieren
Den unten stehenden code kopieren und einfügen
[
{
"id": "850d80dd.9627b8",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchKueche_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.51:8090/now_playing",
"tls": "",
"x": 338.5,
"y": 56,
"wires": [
[
"7e3b1bbf.6cbfdc"
]
]
},
{
"id": "7e3b1bbf.6cbfdc",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing Küche",
"attr": "kueche",
"chr": "",
"x": 574,
"y": 57,
"wires": [
[
"c15a6724.082bd",
"ca5b9827.825ad8"
]
]
},
{
"id": "c15a6724.082bd",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 779,
"y": 28,
"wires": [
[
"d7edad16.3a76a"
]
],
"outputLabels": [
"on"
]
},
{
"id": "28ba2c6c.fccd34",
"type": "wemo out",
"z": "fe2726e.de82ed8",
"name": "SoundTouch_Kueche",
"device": "605b0264.099f14",
"label": "SoundTouch_Kitchen",
"x": 1191,
"y": 55,
"wires": []
},
{
"id": "d7edad16.3a76a",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set Küche ON",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "on",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 982,
"y": 27,
"wires": [
[
"28ba2c6c.fccd34"
]
]
},
{
"id": "ca5b9827.825ad8",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 788,
"y": 91,
"wires": [
[
"148ab7ba.d1e52"
]
],
"outputLabels": [
"on"
]
},
{
"id": "148ab7ba.d1e52",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set Küche OFF",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "off",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 982,
"y": 91,
"wires": [
[
"28ba2c6c.fccd34"
]
]
},
{
"id": "a242f64d.660f88",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchSZ_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.55:8090/now_playing",
"tls": "",
"x": 331.5,
"y": 156,
"wires": [
[
"d8f5efaa.be19e"
]
]
},
{
"id": "d8f5efaa.be19e",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing SZ",
"attr": "sz",
"chr": "",
"x": 554,
"y": 157,
"wires": [
[
"5b87b86e.dd1f58",
"f79321c5.bc20d8"
]
]
},
{
"id": "5b87b86e.dd1f58",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 776.5,
"y": 144,
"wires": [
[
"752dbab3.dca39c"
]
]
},
{
"id": "f79321c5.bc20d8",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 780.5,
"y": 191,
"wires": [
[
"513f63d2.a268e4"
]
]
},
{
"id": "752dbab3.dca39c",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set SZ ON",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "on",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 967.5,
"y": 144,
"wires": [
[
"a0e319de.4f173"
]
]
},
{
"id": "513f63d2.a268e4",
"type": "change",
"z": "fe2726e.de82ed8",
"name": "Set SZ OFF",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "off",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 966.5,
"y": 191,
"wires": [
[
"a0e319de.4f173"
]
]
},
{
"id": "54c20eb6.8184a8",
"type": "wemo-emulator",
"z": "fe2726e.de82ed8",
"name": "SoundTouch_SZ",
"friendlyName": "SoundTouch_SZ",
"serial": "87858101",
"port": "42399",
"onTopic": "SoundTouch_SZ/On",
"onPayload": "on",
"offTopic": "SoundTouch_SZ/Off",
"offPayload": "off",
"x": 85,
"y": 430,
"wires": [
[
"3b650958.60950e",
"c9aa24d1.156ab"
]
]
},
{
"id": "a0e319de.4f173",
"type": "wemo out",
"z": "fe2726e.de82ed8",
"name": "",
"device": "4e36d21b.f79c7c",
"label": "SoundTouch_SZ",
"x": 1186,
"y": 161,
"wires": []
},
{
"id": "52960221.3540ac",
"type": "wemo-emulator",
"z": "fe2726e.de82ed8",
"name": "SoundTouch_Kitchen",
"friendlyName": "SoundTouch_Kitchen",
"serial": "87858103",
"port": "41312",
"onTopic": "SoundTouch_Kitchen/on",
"onPayload": "on",
"offTopic": "SoundTouch_Kitchen/off",
"offPayload": "off",
"x": 106.5,
"y": 321,
"wires": [
[
"24d81544.7a5f7a",
"2b09ffc0.c12558"
]
]
},
{
"id": "ef86c8b8.e74e2",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchKueche_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.51:8090/now_playing",
"tls": "",
"x": 534,
"y": 276,
"wires": [
[
"bb3d053b.650c7"
]
]
},
{
"id": "bb3d053b.650c7",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing Küche",
"attr": "kueche",
"chr": "",
"x": 785,
"y": 273,
"wires": [
[
"e2955b39.10f42"
]
]
},
{
"id": "24d81544.7a5f7a",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn On",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "on",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 323,
"y": 274,
"wires": [
[
"ef86c8b8.e74e2"
]
]
},
{
"id": "e2955b39.10f42",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 1006,
"y": 273,
"wires": [
[
"cc9b446d.8a4db8"
]
]
},
{
"id": "6713a787.b4fc9",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "Post/key Küche",
"method": "POST",
"ret": "txt",
"url": "http://192.168.178.51:8090/key",
"tls": "",
"x": 1360,
"y": 306,
"wires": [
[]
]
},
{
"id": "cc9b446d.8a4db8",
"type": "function",
"z": "fe2726e.de82ed8",
"name": "Power",
"func": "var value = msg.payload;\n\nmsg.payload = '<key state=\"press\" sender=\"Gabbo\">POWER</key>';\nmsg.headers = {'content-type':'application/xml'};\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1191,
"y": 306,
"wires": [
[
"6713a787.b4fc9"
]
]
},
{
"id": "2b09ffc0.c12558",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn Off",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "off",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 316,
"y": 344,
"wires": [
[
"cf7268d7.f3a6c8"
]
]
},
{
"id": "cf7268d7.f3a6c8",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchKueche_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.51:8090/now_playing",
"tls": "",
"x": 531,
"y": 345,
"wires": [
[
"5851806c.16ee78"
]
]
},
{
"id": "5851806c.16ee78",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing Küche",
"attr": "kueche",
"chr": "",
"x": 783,
"y": 344,
"wires": [
[
"e56ded77.de6348"
]
]
},
{
"id": "e56ded77.de6348",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON Küche",
"property": "payload.nowPlaying.kueche.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "false",
"outputs": 1,
"x": 1005,
"y": 343,
"wires": [
[
"cc9b446d.8a4db8"
]
],
"outputLabels": [
"on"
]
},
{
"id": "119ac1b2.540026",
"type": "inject",
"z": "fe2726e.de82ed8",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "30",
"crontab": "",
"once": false,
"x": 95,
"y": 113,
"wires": [
[
"850d80dd.9627b8",
"a242f64d.660f88"
]
]
},
{
"id": "3b650958.60950e",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn On",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "on",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 314,
"y": 408,
"wires": [
[
"8058361c.f8449"
]
]
},
{
"id": "c9aa24d1.156ab",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Wenn Off",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "off",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 323,
"y": 467,
"wires": [
[
"3cfc26e9.817092"
]
]
},
{
"id": "8058361c.f8449",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchSZ_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.55:8090/now_playing",
"tls": "",
"x": 531,
"y": 405,
"wires": [
[
"bd8b55ad.be928"
]
]
},
{
"id": "3cfc26e9.817092",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "SoundTouchSZ_Status",
"method": "GET",
"ret": "txt",
"url": "http://192.168.178.55:8090/now_playing",
"tls": "",
"x": 533,
"y": 470,
"wires": [
[
"62ac2e8.91b65d"
]
]
},
{
"id": "bd8b55ad.be928",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing SZ",
"attr": "sz",
"chr": "",
"x": 762,
"y": 405,
"wires": [
[
"e74b15d6.d88018"
]
]
},
{
"id": "62ac2e8.91b65d",
"type": "xml",
"z": "fe2726e.de82ed8",
"name": "now_Playing SZ",
"attr": "sz",
"chr": "",
"x": 780,
"y": 472,
"wires": [
[
"ad5149ef.3d40b"
]
]
},
{
"id": "ad5149ef.3d40b",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status ON SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "neq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 992,
"y": 471,
"wires": [
[
"2aefce1.2f878b2"
]
]
},
{
"id": "e74b15d6.d88018",
"type": "switch",
"z": "fe2726e.de82ed8",
"name": "Status OFF SZ",
"property": "payload.nowPlaying.sz.source",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "STANDBY",
"vt": "str"
}
],
"checkall": "true",
"outputs": 1,
"x": 990,
"y": 406,
"wires": [
[
"2aefce1.2f878b2"
]
]
},
{
"id": "85330e73.e472",
"type": "http request",
"z": "fe2726e.de82ed8",
"name": "Post/key SZ",
"method": "POST",
"ret": "txt",
"url": "http://192.168.178.55:8090/key",
"tls": "",
"x": 1343,
"y": 435,
"wires": [
[]
]
},
{
"id": "2aefce1.2f878b2",
"type": "function",
"z": "fe2726e.de82ed8",
"name": "Power",
"func": "var value = msg.payload;\n\nmsg.payload = '<key state=\"press\" sender=\"Gabbo\">POWER</key>';\nmsg.headers = {'content-type':'application/xml'};\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1186,
"y": 436,
"wires": [
[
"85330e73.e472"
]
]
},
{
"id": "605b0264.099f14",
"type": "wemo-dev",
"z": "",
"device": "87858103",
"name": "SoundTouch_Kitchen"
},
{
"id": "4e36d21b.f79c7c",
"type": "wemo-dev",
"z": "",
"device": "87858101",
"name": "SoundTouch_SZ"
}
]
Die rot markierten flows musst du noch anpassen (die jeweilige IP-Adresse deiner Soundtouch Lautsprechen eintragen)
Das ganze kannst Du natürlich um weitere Lautsprechen ergänzen/erweitern.
Die Namen der WeMo’s anpassen, etc.
Danach auf Deploy Full klicken
Und wenn Du keine Fehler gemacht hast sollte auch eine Erfolgsmeldung erscheinen.
Danach kannst Du zu homee wechseln und nach neuen Wlan Geräte suchen.
Wlan → Belkin WeMo
Wenn Alles geklappt hat, solltest Du in der Lage sein über die neuen WeMo’s Schalter deine Lautsprechen Ein und Auschalten zu können.
Ich hoffe das war einigermaßen verständlich.
Du solltest Dich auf jeden Fall zu den Themen:
- Rasperry PI
- Node Red
im Netz ein wenig einlesen.
Ansonsten gilt Probieren geht über Studieren!
Viel Spaß und Erfolg!
Die Steuerung der Lautsprecher über dem Umweg Node red funktioniert sehr gut. Was mir noch fehlt ist eine Sprachausgabe z.B. Google-tts. Kennt jemand eine Lösung in Node red umgesetzt? Oder muss ich zusätzlich den Umweg über Home Assistant gehen?!
Nimm die SONOS-HTTP-API, die kannst Du via homeean parallel installieren, TTS ist im nachfolgenden Artikel beschrieben:
https://www.homeepedia.de/books/homeean/page/sonos-http-api
Der Dienst idelt im Hintergrund vor sich hin - schneller und einfacher kannst Du TTS nicht erreichen.
Edit: Und via Webhooks optional auch aus Node-RED heraus aufrufen…
Was hat die Sonos-http-api mit Bose SoundTouch zu tun? Oder stehe ich auf dem Schlauch?
Ne, ich… Gerade erst realisiert, dass Ihr über den Bose diskutiert. Bekenne mich schuldig der Ignoranz