für eine Alarmanlage möchte ich zur Durchsage von diversen Texten meine SONOS-Boxen nutzen. Dazu habe ich mir die Palette "node-red-contrib-tts-ultimate" installiert und den node "ttsultimate" genutzt. Über einen Function-node wird in Abhängigkeit des Status ein Text an tts-ultimate übergeben (siehe code unten). So weit funktioniert es auch sehr gut.
Mich stört jedoch folgendes:
Wird die SONOS an der Box manuell eingeschaltet, so spielt sie z. B. den letzten Radiosender wieder ab. War die letzte Aktion jedoch eine Durchsage des nodes tts-ultimate, so wird die Durchsage erneut abgespielt. Der Radiosender muss erst wieder in der SONOS-App ausgewählt werden.
Ist es möglich, dass vor der Durchsage der letzte Radiosender abgespeichert und nach der Durchsage dieser Radiosender wieder in der SONOS hinterlegt wird?
Code: Alles auswählen
[{"id":"cba2deb5.5db61","type":"ttsultimate","z":"670e5338.0ffe34","name":"","voice":"de-DE","ssml":false,"sonosipaddress":"172.16.0.36","sonosvolume":"80","sonoshailing":"Hailing_Hailing.mp3","config":"8b27f9a.b5a5508","property":"payload","propertyType":{},"rules":[],"playertype":"sonos","speakingrate":"1","speakingpitch":"0","unmuteIfMuted":true,"x":750,"y":280,"wires":[[],[]]},{"id":"98ff71a1.a917d8","type":"debug","z":"670e5338.0ffe34","name":"SONOS","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":740,"y":360,"wires":[]},{"id":"97d53513.feb78","type":"ccu-sysvar","z":"670e5338.0ffe34","name":"SH SV AlarmStatus","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":130,"y":280,"wires":[["8f218dee.dfe808"]]},{"id":"8f218dee.dfe808","type":"function","z":"670e5338.0ffe34","name":"Status in Text","func":"// Abhängig vom Status der SV wird die SONOS angesprochen\n// Statien ohne SONOS-Ausgabe werden an den Ausgang 2 gesandt\nswitch (msg.payload) {\n case 0:\n // Status AUS\n msg.unmute = \"false\";\n msg.nohailing = \"true\";\n msg.volume = \"40\";\n msg.payload = \"Alarmanlage Ausgeschaltet\";\n return [msg, null]\n break;\n case 1:\n // Status Bereit\n return [null, msg]\n break;\n case 2:\n // Status Vorscharf\n return [null, msg]\n break;\n case 3:\n // Status Scharf\n return [null, msg]\n break;\n case 4:\n // Status Voralarm\n msg.unmute = \"true\";\n msg.nohailing = \"true\";\n msg.volume = \"40\";\n msg.payload = \"Alarmanlage deaktivieren!\";\n return [msg, null]\n break;\n case 5:\n // Status Ruhe\n msg.unmute = \"false\";\n msg.nohailing = \"true\";\n msg.volume = \"40\";\n msg.payload = \"Alarmanlage in Ruhe!\";\n return [msg, null]\n break;\n case 6:\n // Status Alarm\n msg.unmute = \"false\";\n msg.nohailing = \"fasle\";\n msg.volume = \"80\";\n msg.payload = \"Alarm! Pushnachricht wurde versandt\";\n return [msg, null]\n}","outputs":2,"noerr":0,"initialize":"","finalize":"","x":420,"y":280,"wires":[["cba2deb5.5db61","98ff71a1.a917d8"],[]]},{"id":"559e9d5a.2974ac","type":"comment","z":"670e5338.0ffe34","name":"Sprachausgabe in Abhängigkeit von AlarmStatus","info":"","x":220,"y":240,"wires":[]},{"id":"8b27f9a.b5a5508","type":"ttsultimate-config","name":"TTS Service using Google","noderedipaddress":"172.16.0.5","noderedport":"1980","purgediratrestart":"purge","ttsservice":"googletranslate","limitTTSFilenameLenght":"220"},{"id":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","tls":false,"inSecure":false,"authentication":false,"username":"","password":"","queueTimeout":"5000","queuePause":"250","contextStore":""}]