Siema, postanowiłem wymienić radyjko FM na głośnik Google Nest Mini v2 w połączeniu z pilotem Philips Hue Dimmer Switch V2. Machnąłem takie coś:
[{"id":"5703909104718ee6","type":"server-state-changed","z":"783d960db54dbf1d","name":"Pilot hue łazienka","server":"89fbae45.759a4","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["sensor.pilot_hue_lazienka_action"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":2640,"wires":[["5d1d590b640373f0"]]},{"id":"5d1d590b640373f0","type":"switch","z":"783d960db54dbf1d","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on_press","vt":"str"},{"t":"eq","v":"up_press","vt":"str"},{"t":"eq","v":"down_press","vt":"str"},{"t":"eq","v":"off_press","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":90,"y":2740,"wires":[["ab68bd8ea366ed1a"],["ab68bd8ea366ed1a"],["ab68bd8ea366ed1a"],["ab68bd8ea366ed1a"]]},{"id":"9efa4628856ca521","type":"group","z":"783d960db54dbf1d","name":"Wieloklik","style":{"label":true},"nodes":["d14cc89b65e475b2","ab68bd8ea366ed1a","3e955e7a23e3f7f5","bf3f5496d5dc7333","d5207f2eaa2ce83d","e315981db57a559b","2dd2b82d56019aff"],"x":234,"y":2619,"w":632,"h":162},{"id":"d14cc89b65e475b2","type":"change","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":2680,"wires":[["ab68bd8ea366ed1a"]]},{"id":"ab68bd8ea366ed1a","type":"counter","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"","init":"0","step":"1","lower":null,"upper":null,"mode":"increment","outputs":1,"x":320,"y":2720,"wires":[["3e955e7a23e3f7f5"]]},{"id":"3e955e7a23e3f7f5","type":"trigger","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"300","extend":true,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":480,"y":2720,"wires":[["bf3f5496d5dc7333","d14cc89b65e475b2"]]},{"id":"bf3f5496d5dc7333","type":"switch","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"clicks","property":"count","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"3","vt":"num"}],"checkall":"true","repair":false,"outputs":3,"x":650,"y":2720,"wires":[["d5207f2eaa2ce83d"],["e315981db57a559b"],["2dd2b82d56019aff"]]},{"id":"d5207f2eaa2ce83d","type":"function","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"_1","func":"msg.payload += '_1'\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":2660,"wires":[["ad5d8bb98c0c3546"]]},{"id":"e315981db57a559b","type":"function","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"_2","func":"msg.payload += '_2'\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":2700,"wires":[["ad5d8bb98c0c3546"]]},{"id":"2dd2b82d56019aff","type":"function","z":"783d960db54dbf1d","g":"9efa4628856ca521","name":"_3","func":"msg.payload += '_3'\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":2740,"wires":[["ad5d8bb98c0c3546"]]},{"id":"76882f4fe0f6f5df","type":"group","z":"783d960db54dbf1d","name":"Radio","style":{"label":true},"nodes":["ca563ead4dddccbe","cb3d9d13af076c16","9ea51e6db50f3c1e","32a52432b7c2474a","ad5d8bb98c0c3546","c0e5b185e41b989f","cce6804037ba51a1","f3650dcfb21ebd55","293be7c528d3bbb5","09883dda17d51954","35bdba78b822eb38","24a9e64a5af90b4a","1425cfd76190a61e","8242a086fef98321","cc2e7dc208333fd0","913596fbcbc485f9","b1419495d4850867","f385efc2326cc41f"],"x":114,"y":2819,"w":1032,"h":382},{"id":"ca563ead4dddccbe","type":"cast-to-client","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"stacja","url":"","contentType":"audio/basic","message":"","language":"pl","ip":"192.168.0.24","port":"","volume":"","x":1030,"y":2940,"wires":[[]]},{"id":"cb3d9d13af076c16","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"następna stacja","func":"const stations = [\n { name: \"Antyradio\", url: \"https://27783.live.streamtheworld.com/ANTYRADIOAAC.aac?dist=tunein\" },\n { name: \"Antyradio Hard\", url: \"https://an01.cdn.eurozet.pl/ANTHAR.mp3\" },\n { name: \"Zet\", url: \"http://zet-net-01.cdn.eurozet.pl:8400/\" },\n { name: \"Chilli Zet\", url: \"https://ch.cdn.eurozet.pl/chi-net.mp3\" },\n { name: \"Chilli Zet Deep\", url: \"http://ch02.cdn.eurozet.pl/CHIDEP.mp3\" },\n { name: \"Eska\", url: \"https://waw.ic.smcdn.pl/6030-1.mp3\" },\n { name: \"Eska Rock\", url: \"https://ic2.smcdn.pl/5380-1.mp3#ESKA_ROCK\" }, \n { name: \"CNN\", url: \"https://tunein.cdnstream1.com/2868_96.mp3\" },\n { name: \"Tok FM\", url: \"https://radiostream.pl/tuba10-1.mp3\" },\n { name: \"RMF\", url: \"http://195.150.20.242:8000/rmf_fm\" }, \n { name: \"RMF Chillout + fakty\", url: \"http://31.192.216.8/CHILLOUTF\", delay: 4000 },\n { name: \"RMF Reggae + fakty\", url: \"http://195.150.20.7/REGGAEF\", delay: 4000 },\n { name: \"4Music\", url: \"https://s1.slotex.pl/shoutcast/7102/stream\" },\n { name: \"Kampus\", url: \"https://stream.radiokampus.fm/kampus\" },\n];\n\nlet index = flow.get(\"currentStationIndex\") || 0;\nindex = (index + 1) % stations.length;\nflow.set(\"currentStationUrl\", stations[index].url);\nflow.set(\"currentStationName\", stations[index].name);\nflow.set(\"currentStationIndex\", index);\nmsg.urlContainer = stations[index].url;\nmsg.payload = stations[index].name\nif (stations[index].delay){\n msg.delay = stations[index].delay\n flow.set(\"messageDelay\", stations[index].delay);\n} else {\n msg.delay = 2000\n flow.set(\"messageDelay\", 2000);\n}\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":2920,"wires":[["32a52432b7c2474a","f385efc2326cc41f"]]},{"id":"9ea51e6db50f3c1e","type":"delay","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"Czekaj","pauseType":"delayv","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1070,"y":2880,"wires":[["ca563ead4dddccbe"]]},{"id":"32a52432b7c2474a","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"url stacji","func":"msg.url = msg.urlContainer;\ndelete msg.payload\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":2880,"wires":[["9ea51e6db50f3c1e"]]},{"id":"ad5d8bb98c0c3546","type":"switch","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on_press_1","vt":"str"},{"t":"eq","v":"off_press_1","vt":"str"},{"t":"eq","v":"on_press_2","vt":"str"},{"t":"eq","v":"up_press_1","vt":"str"},{"t":"eq","v":"down_press_1","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":290,"y":3040,"wires":[["293be7c528d3bbb5"],["cce6804037ba51a1","f3650dcfb21ebd55"],["c0e5b185e41b989f"],["cc2e7dc208333fd0"],["24a9e64a5af90b4a"]]},{"id":"c0e5b185e41b989f","type":"api-call-service","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"wyłącz głośnik","server":"89fbae45.759a4","version":7,"debugenabled":false,"action":"media_player.turn_off","floorId":[],"areaId":[],"deviceId":[],"entityId":["media_player.nest"],"labelId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"media_player","service":"turn_off","x":700,"y":3040,"wires":[[]]},{"id":"cce6804037ba51a1","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"aktualna stacja","func":"msg.payload = flow.get(\"currentStationName\")\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":2960,"wires":[["f385efc2326cc41f"]]},{"id":"f3650dcfb21ebd55","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"aktualny url stacji i delay","func":"delete msg.payload\nmsg.url = flow.get(\"currentStationUrl\");\nmsg.delay = flow.get(\"messageDelay\");\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":730,"y":3000,"wires":[["9ea51e6db50f3c1e"]]},{"id":"293be7c528d3bbb5","type":"api-current-state","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"następna stacja czy włączenie","server":"89fbae45.759a4","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"media_player.nest","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":270,"y":2860,"wires":[["09883dda17d51954","35bdba78b822eb38"]]},{"id":"09883dda17d51954","type":"switch","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"off","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":470,"y":2940,"wires":[["cce6804037ba51a1","f3650dcfb21ebd55"],["cb3d9d13af076c16"]]},{"id":"35bdba78b822eb38","type":"debug","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"debug 8","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":490,"y":2860,"wires":[]},{"id":"24a9e64a5af90b4a","type":"api-current-state","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"nest","server":"89fbae45.759a4","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"media_player.nest","state_type":"str","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":670,"y":3160,"wires":[["1425cfd76190a61e"]]},{"id":"1425cfd76190a61e","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"ciszej","func":"msg.volume_level = Math.max(0, msg.data.attributes.volume_level - 0.05);\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":3160,"wires":[["8242a086fef98321"]]},{"id":"8242a086fef98321","type":"api-call-service","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","server":"89fbae45.759a4","version":7,"debugenabled":false,"action":"media_player.volume_set","floorId":[],"areaId":[],"deviceId":[],"entityId":["media_player.nest"],"labelId":[],"data":"{\"volume_level\": {{volume_level}}}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"media_player","service":"volume_set","x":990,"y":3160,"wires":[[]]},{"id":"cc2e7dc208333fd0","type":"api-current-state","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"nest","server":"89fbae45.759a4","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"media_player.nest","state_type":"str","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":670,"y":3100,"wires":[["913596fbcbc485f9"]]},{"id":"913596fbcbc485f9","type":"function","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"głośniej","func":"msg.volume_level = Math.min(1, msg.data.attributes.volume_level + 0.05);\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":800,"y":3100,"wires":[["b1419495d4850867"]]},{"id":"b1419495d4850867","type":"api-call-service","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"","server":"89fbae45.759a4","version":7,"debugenabled":false,"action":"media_player.volume_set","floorId":[],"areaId":[],"deviceId":[],"entityId":["media_player.nest"],"labelId":[],"data":"{\"volume_level\": {{volume_level}}}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"media_player","service":"volume_set","x":990,"y":3100,"wires":[[]]},{"id":"f385efc2326cc41f","type":"cast-to-client","z":"783d960db54dbf1d","g":"76882f4fe0f6f5df","name":"nazwa","url":"","contentType":"","message":"","language":"pl","ip":"192.168.0.24","port":"","volume":"","x":870,"y":2940,"wires":[[]]},{"id":"89fbae45.759a4","type":"server","name":"Home Assistant","addon":true}]
No i mam w związku z tym kilka pytań:
- Na niektóre stacje trzeba zaczekać zanim zaczną grać co jest upierdliwe. Skoro wiadomo z góry jaka stacja będzie następna (z pilota tylko następną można włączyć) to czy nie dało by się tego buforować. Na przykład jeśli słucham czwartej stacji z listy to piąta cały czas się buforuje a gdy kliknę “następna stacja” to zaraz po odczycie nazwy stacji zaczyna grać. Ktoś ogarniał coś takiego?
- Chciałbym poza radiem aby można było uruchomić jedną konkretną playlistę ze Spotify. Integrację już mam. Gdy odtwarzam coś na Spotify to integracja to od razu widzi i mam możliwość aby tym sterować z HA więc od tej strony zdaje się jest ok. Natomiast nie mam pojęcia jak zapoczątkować odtwarzanie Spotify na Nest bez użycia telefonu.