Letzte Aktualisierung am 8. Dezember 2023
Nachfolgend beschreibe ich, wie einfach sich der audiophile Music-Player Volumio in die Homematic Hausautomatisierung einbinden lässt und was man mit dieser Implementierung zum Beispiel anstellen kann.
Voraussetzungen
Zur Einrichtung eines Volumio-Systems empfehle ich die Volumio-Dokumentation oder meine (jedoch schon etwas ältere) Beschreibung im Tutorial zum Volumio-Radio.
Da die Einbindung über Node-RED erfolgt, müssen auf der CCU das Add-On RedMatic und dort der zusätzliche Knoten node-red-contrib-volumio installiert sein.
In dieser Anleitung werden außerdem die zusätzlichen Knoten node-red-node-pushbullet und node-red-contrib-sun-position verwendet.
Die grundsätzliche Vorgehensweise zu Node-RED in Verbindung mit Homematic ist in der Anleitung von RedMatic nachzulesen.
Vorgehen
Zur Konfiguration genügt es, nach der Installation im Knoten“volumio command“, die IP-Adresse des Volumio-Gerätes mit dem Port 3000 einzugeben…
…und es stehen unmittelbar die wesentlichen Steuerungsfunktionen zur Verfügung…
Im unten gezeigten Beispiel sind folgende automatischen Funktionen realisiert, wobei die Automatik nur in Abhängigkeit des Zustandes der Sytemvariablen „Musikautomatik“ (boolean) eingeschaltet ist:
- Abspielen eines Webradiosenders mit Loungemusik in der Lautstärke von 60% bei Betreten der Wohnung zwischen 15:00 und 23:45 Uhr.
- Abspielen eines Webradiosenders mit Nachrichten in der Lautstärke von 60% beim Aufstehen zwischen 06:15 und 09:00 Uhr an Wochentagen bzw. zwischen 09:00 und 12:00 Uhr an Wochenenden oder wenn in diesen Zeitfenstern die Nachttischlampe eingeschaltet wird.
- Stoppen des Music-Players und Reduzierung der Lautstärke auf 0% bei Verlassen der Wohnung, zu Bett gehen oder Ausschalten der Nachttischlampe zwischen 22:00 und 6:15 Uhr. Dabei werden weitere Leuchten ausgeschaltet.
Die Erkennung der Anwesenheit erfolgt über die „FRITZ!-basierte Anwesenheitserkennung für HomeMatic“ (hm_pdetect).
In einer anderen Anleitung habe ich bereits die Einbindung der Withings-Sleep Sensormatte als „Homematic-Trigger“ beschrieben.
Die Volumio Steuerung über den Node „volumio command“ geschieht mittels der drei Funktionsknoten „volume“, „playlist“ und „event“. Mehr dazu ist mit Beispielen in der Dokumentation von node-red-contrib-volumio beschrieben.
Zur Festlegung der Lautstärke wird der gewünschte Prozentwert als Payload…
…an den Funktionsknoten „volume“ weiter gegeben…
Steuerbefehle wie Start/Stopp nutzen das jeweilige Schlüsselwort als Payload…
…zusammen mit dem Funktionsknoten „event“…
Um Internetradiosender auswählen zu können, werden diese zunächst in Volumio als Playlist eingerichtet…
…und deren Name an den Funktionsknoten „playlist“ weiter gegeben…
Analog kann so das Abspielen beliebiger Playlisten realisiert werden.
Node-Vorlage
Hier der Beispiel-Node zum direkten Importieren und Ausprobieren…
[
{
"id": "a141d777.f7f18",
"type": "tab",
"label": "Audio und Licht",
"disabled": false,
"info": ""
},
{
"id": "f043792b.a239e",
"type": "function",
"z": "a141d777.f7f18",
"name": "event",
"func": "var event = msg.payload;\n\nmsg.payload = {\n event: event\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1290,
"y": 380,
"wires": [
[
"7b52d7e9.7a62e8"
]
]
},
{
"id": "610de37a.b9349c",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Stop",
"topic": "",
"payload": "stop",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1770,
"y": 520,
"wires": [
[
"f043792b.a239e"
]
]
},
{
"id": "16a4e8f2.899727",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Play",
"topic": "",
"payload": "play",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1769,
"y": 440.00001525878906,
"wires": [
[
"f043792b.a239e"
]
]
},
{
"id": "f430467e.783ad8",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Track vor",
"topic": "",
"payload": "next",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1780,
"y": 560,
"wires": [
[
"f043792b.a239e"
]
]
},
{
"id": "57e429d4.2577d8",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Track zurück",
"topic": "",
"payload": "prev",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1790,
"y": 600,
"wires": [
[
"f043792b.a239e"
]
]
},
{
"id": "a536a81c.149278",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Pause",
"topic": "",
"payload": "pause",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1769,
"y": 480.00001525878906,
"wires": [
[
"f043792b.a239e"
]
]
},
{
"id": "67528e5e.0f5f48",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Lautstärke auf 40%",
"topic": "",
"payload": "40",
"payloadType": "num",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1810,
"y": 100,
"wires": [
[
"7ee0b855.2b1cc8"
]
]
},
{
"id": "7ee0b855.2b1cc8",
"type": "function",
"z": "a141d777.f7f18",
"name": "volume",
"func": "var vol = msg.payload;\n\nmsg.payload = {\n event: \"volume\",\n data: vol\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1290,
"y": 140,
"wires": [
[
"7b52d7e9.7a62e8"
]
]
},
{
"id": "cb5c0afd.03c1c",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Lauter",
"topic": "",
"payload": "+",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1770,
"y": 60,
"wires": [
[
"7ee0b855.2b1cc8"
]
]
},
{
"id": "a3d498f8.85df5",
"type": "inject",
"z": "a141d777.f7f18",
"name": "Leiser",
"topic": "",
"payload": "-",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1770,
"y": 20,
"wires": [
[
"7ee0b855.2b1cc8"
]
]
},
{
"id": "5a52a055.2f21a",
"type": "comment",
"z": "a141d777.f7f18",
"name": "Volumio",
"info": "",
"x": 70,
"y": 40,
"wires": []
},
{
"id": "32229a60.e09f46",
"type": "ccu-sysvar",
"z": "a141d777.f7f18",
"name": "Anwesenheit",
"ccuConfig": "38263145.35ea0e",
"topic": "ReGaHSS/${Name}",
"change": true,
"cache": false,
"x": 90,
"y": 100,
"wires": [
[
"8d2d1663.cf4c4"
]
]
},
{
"id": "f1f1bd1c.d73b7",
"type": "change",
"z": "a141d777.f7f18",
"name": "Lounge",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Lounge",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1060,
"y": 160,
"wires": [
[
"76476f8b.2dc77"
]
]
},
{
"id": "110d0f8.f7477f1",
"type": "change",
"z": "a141d777.f7f18",
"name": "stop",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "stop",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1050,
"y": 340,
"wires": [
[
"f043792b.a239e"
]
]
},
{
"id": "5f250990.83bb98",
"type": "switch",
"z": "a141d777.f7f18",
"name": "abwesend?",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "false"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 470,
"y": 100,
"wires": [
[
"110d0f8.f7477f1",
"711069d5.6ff39"
]
]
},
{
"id": "3841a93.1cd94d6",
"type": "ccu-sysvar",
"z": "a141d777.f7f18",
"name": "Anwesenheit.Jens",
"ccuConfig": "38263145.35ea0e",
"topic": "ReGaHSS/${Name}",
"change": true,
"cache": false,
"x": 110,
"y": 160,
"wires": [
[
"3fda6683.82cbea"
]
]
},
{
"id": "eb150bda.b8a17",
"type": "switch",
"z": "a141d777.f7f18",
"name": "anwesend?",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "true"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 470,
"y": 160,
"wires": [
[
"1c62cac8.bb44ad"
]
]
},
{
"id": "3fda6683.82cbea",
"type": "ccu-switch",
"z": "a141d777.f7f18",
"name": "Musikautomatik?",
"ccuConfig": "38263145.35ea0e",
"iface": "ReGaHSS",
"channel": "",
"sysvar": "Musik Automatik",
"sysvarProperty": "value",
"datapoint": "",
"datapointProperty": "value",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "true"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 300,
"y": 160,
"wires": [
[
"eb150bda.b8a17"
]
]
},
{
"id": "8d2d1663.cf4c4",
"type": "ccu-switch",
"z": "a141d777.f7f18",
"name": "Musikautomatik?",
"ccuConfig": "38263145.35ea0e",
"iface": "ReGaHSS",
"channel": "",
"sysvar": "Musik Automatik",
"sysvarProperty": "value",
"datapoint": "",
"datapointProperty": "value",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "true"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 300,
"y": 100,
"wires": [
[
"5f250990.83bb98"
]
]
},
{
"id": "33c2e2d6.c9cb5e",
"type": "change",
"z": "a141d777.f7f18",
"name": "Lautstärke 60%",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "60",
"tot": "num"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1040,
"y": 400,
"wires": [
[
"7ee0b855.2b1cc8"
]
]
},
{
"id": "d068e612.a3065",
"type": "change",
"z": "a141d777.f7f18",
"name": "Lautstärke 0%",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "0",
"tot": "num"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1080,
"y": 100,
"wires": [
[
"7ee0b855.2b1cc8"
]
]
},
{
"id": "7b52d7e9.7a62e8",
"type": "volumio command",
"z": "a141d777.f7f18",
"server": "97af1815.0b1e",
"x": 1530,
"y": 300,
"wires": [
[]
]
},
{
"id": "40f71c67.02ddd4",
"type": "delay",
"z": "a141d777.f7f18",
"name": "",
"pauseType": "delay",
"timeout": "2",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 900,
"y": 160,
"wires": [
[
"f1f1bd1c.d73b7"
]
]
},
{
"id": "711069d5.6ff39",
"type": "delay",
"z": "a141d777.f7f18",
"name": "",
"pauseType": "delay",
"timeout": "2",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 900,
"y": 100,
"wires": [
[
"d068e612.a3065"
]
]
},
{
"id": "76476f8b.2dc77",
"type": "function",
"z": "a141d777.f7f18",
"name": "playlist",
"func": "var list = msg.payload;\n\nmsg.payload = {\n event: \"playPlaylist\",\n data: list\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1280,
"y": 260,
"wires": [
[
"7b52d7e9.7a62e8"
]
]
},
{
"id": "111d90c2.5bc7a7",
"type": "inject",
"z": "a141d777.f7f18",
"name": "",
"topic": "",
"payload": "Lounge",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1770,
"y": 160,
"wires": [
[
"76476f8b.2dc77"
]
]
},
{
"id": "55bfcbbd.7d912c",
"type": "inject",
"z": "a141d777.f7f18",
"name": "",
"topic": "",
"payload": "Jazz",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1770,
"y": 200,
"wires": [
[
"76476f8b.2dc77"
]
]
},
{
"id": "d14a7f7b.99d2f8",
"type": "within-time-switch",
"z": "a141d777.f7f18",
"name": "zwischen 06:15 und 08:59",
"positionConfig": "6db036ad.18af",
"startTime": "06:15",
"startTimeType": "entered",
"startOffset": "",
"startOffsetType": "none",
"startOffsetMultiplier": 60000,
"endTime": "08:59",
"endTimeType": "entered",
"endOffset": "",
"endOffsetType": "none",
"endOffsetMultiplier": 60000,
"propertyStart": "",
"propertyStartType": "none",
"propertyStartCompare": "true",
"propertyStartThreshold": "",
"propertyStartThresholdType": "num",
"startTimeAlt": "",
"startTimeAltType": "entered",
"startOffsetAlt": 0,
"startOffsetAltType": "none",
"startOffsetAltMultiplier": 60000,
"propertyEnd": "",
"propertyEndType": "none",
"propertyEndCompare": "true",
"propertyEndThreshold": "",
"propertyEndThresholdType": "num",
"endTimeAlt": "",
"endTimeAltType": "entered",
"endOffsetAlt": 0,
"endOffsetAltType": "none",
"endOffsetAltMultiplier": 60000,
"tsCompare": "0",
"lastMsgOnStartOut": false,
"lastMsgOnEndOut": false,
"x": 720,
"y": 400,
"wires": [
[
"33c2e2d6.c9cb5e",
"b62f2e2f.8141f"
],
[]
]
},
{
"id": "c3e2ab68.f5407",
"type": "ccu-value",
"z": "a141d777.f7f18",
"name": "Nachttischlampe",
"iface": "BidCos-RF",
"channel": "ABC1234567:1 Wohnzimmer Nachttischlampe:1",
"datapoint": "STATE",
"mode": "",
"start": true,
"change": true,
"cache": false,
"queue": true,
"on": 0,
"onType": "undefined",
"ramp": 0,
"rampType": "undefined",
"working": false,
"ccuConfig": "38263145.35ea0e",
"topic": "${CCU}/${Interface}/${channel}/${datapoint}",
"x": 150,
"y": 260,
"wires": [
[
"6ac78c26.772e24"
]
]
},
{
"id": "5571c57f.fdb38c",
"type": "change",
"z": "a141d777.f7f18",
"name": "Info",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Info",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1110,
"y": 520,
"wires": [
[
"76476f8b.2dc77"
]
]
},
{
"id": "b62f2e2f.8141f",
"type": "delay",
"z": "a141d777.f7f18",
"name": "",
"pauseType": "delay",
"timeout": "2",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 960,
"y": 520,
"wires": [
[
"5571c57f.fdb38c"
]
]
},
{
"id": "24256192.198a26",
"type": "ccu-switch",
"z": "a141d777.f7f18",
"name": "Musikautomatik?",
"ccuConfig": "38263145.35ea0e",
"iface": "ReGaHSS",
"channel": "",
"sysvar": "Musik Automatik",
"sysvarProperty": "value",
"datapoint": "",
"datapointProperty": "value",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "true"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 240,
"y": 400,
"wires": [
[
"a1132a0c.b70788"
]
]
},
{
"id": "6eb978c5.e0cf5",
"type": "pushbullet in",
"z": "a141d777.f7f18",
"config": "2d53efc7.e061c",
"name": "",
"x": 80,
"y": 400,
"wires": [
[
"24256192.198a26"
]
]
},
{
"id": "a1132a0c.b70788",
"type": "switch",
"z": "a141d777.f7f18",
"name": "Schlafen oder Aufstehen?",
"property": "topic",
"propertyType": "msg",
"rules": [
{
"t": "cont",
"v": "Bedtime detection",
"vt": "str"
},
{
"t": "cont",
"v": "Out of bed detection",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 300,
"y": 480,
"wires": [
[
"f9af7577.98ae08"
],
[
"437a8491.7f7d24"
]
]
},
{
"id": "6ac78c26.772e24",
"type": "ccu-switch",
"z": "a141d777.f7f18",
"name": "Musikautomatik?",
"ccuConfig": "38263145.35ea0e",
"iface": "ReGaHSS",
"channel": "",
"sysvar": "Musik Automatik",
"sysvarProperty": "value",
"datapoint": "",
"datapointProperty": "value",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "true"
}
],
"checkall": "true",
"repair": false,
"outputs": 1,
"x": 130,
"y": 340,
"wires": [
[
"1f586fae.e6c91"
]
]
},
{
"id": "f9af7577.98ae08",
"type": "within-time-switch",
"z": "a141d777.f7f18",
"name": "zwischen 22:00 und 06:14",
"positionConfig": "6db036ad.18af",
"startTime": "22:00",
"startTimeType": "entered",
"startOffset": "",
"startOffsetType": "none",
"startOffsetMultiplier": 60000,
"endTime": "06:14",
"endTimeType": "entered",
"endOffset": "",
"endOffsetType": "none",
"endOffsetMultiplier": 60000,
"propertyStart": "",
"propertyStartType": "none",
"propertyStartCompare": "true",
"propertyStartThreshold": "",
"propertyStartThresholdType": "num",
"startTimeAlt": "",
"startTimeAltType": "entered",
"startOffsetAlt": 0,
"startOffsetAltType": "none",
"startOffsetAltMultiplier": 60000,
"propertyEnd": "",
"propertyEndType": "none",
"propertyEndCompare": "true",
"propertyEndThreshold": "",
"propertyEndThresholdType": "num",
"endTimeAlt": "",
"endTimeAltType": "entered",
"endOffsetAlt": 0,
"endOffsetAltType": "none",
"endOffsetAltMultiplier": 60000,
"tsCompare": "0",
"lastMsgOnStartOut": false,
"lastMsgOnEndOut": false,
"x": 600,
"y": 320,
"wires": [
[
"110d0f8.f7477f1",
"711069d5.6ff39",
"41d5eb52.dc123c"
],
[]
]
},
{
"id": "1f586fae.e6c91",
"type": "switch",
"z": "a141d777.f7f18",
"name": "aus oder an?",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "false"
},
{
"t": "true"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 340,
"y": 340,
"wires": [
[
"f9af7577.98ae08"
],
[
"437a8491.7f7d24"
]
]
},
{
"id": "3767a972.b4ac8e",
"type": "ccu-value",
"z": "a141d777.f7f18",
"name": "Stehlampe",
"iface": "BidCos-RF",
"channel": "ABC1234568:1 Wohnzimmer Stehlampe:1",
"datapoint": "STATE",
"mode": "",
"start": true,
"change": true,
"cache": false,
"queue": false,
"on": 0,
"onType": "undefined",
"ramp": 0,
"rampType": "undefined",
"working": false,
"ccuConfig": "38263145.35ea0e",
"topic": "${CCU}/${Interface}/${channel}/${datapoint}",
"x": 1070,
"y": 220,
"wires": [
[]
]
},
{
"id": "41d5eb52.dc123c",
"type": "change",
"z": "a141d777.f7f18",
"name": "ausschalten",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "false",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 890,
"y": 220,
"wires": [
[
"3767a972.b4ac8e",
"96e36126.9e78c8"
]
]
},
{
"id": "1c62cac8.bb44ad",
"type": "within-time-switch",
"z": "a141d777.f7f18",
"name": "zwischen 15:00 und 23:45",
"positionConfig": "6db036ad.18af",
"startTime": "15:00",
"startTimeType": "entered",
"startOffset": "",
"startOffsetType": "none",
"startOffsetMultiplier": 60000,
"endTime": "23:45",
"endTimeType": "entered",
"endOffset": "",
"endOffsetType": "none",
"endOffsetMultiplier": 60000,
"propertyStart": "",
"propertyStartType": "none",
"propertyStartCompare": "true",
"propertyStartThreshold": "",
"propertyStartThresholdType": "num",
"startTimeAlt": "",
"startTimeAltType": "entered",
"startOffsetAlt": 0,
"startOffsetAltType": "none",
"startOffsetAltMultiplier": 60000,
"propertyEnd": "",
"propertyEndType": "none",
"propertyEndCompare": "true",
"propertyEndThreshold": "",
"propertyEndThresholdType": "num",
"endTimeAlt": "",
"endTimeAltType": "entered",
"endOffsetAlt": 0,
"endOffsetAltType": "none",
"endOffsetAltMultiplier": 60000,
"tsCompare": "0",
"lastMsgOnStartOut": false,
"lastMsgOnEndOut": false,
"x": 600,
"y": 240,
"wires": [
[
"33c2e2d6.c9cb5e",
"40f71c67.02ddd4"
],
[]
]
},
{
"id": "96e36126.9e78c8",
"type": "ccu-value",
"z": "a141d777.f7f18",
"name": "Lampe Fensterbank",
"iface": "BidCos-RF",
"channel": "ABC1234569:1 Wohnzimmer Lampe Fensterbank:1",
"datapoint": "STATE",
"mode": "",
"start": true,
"change": true,
"cache": false,
"queue": false,
"on": 0,
"onType": "undefined",
"ramp": 0,
"rampType": "undefined",
"working": false,
"ccuConfig": "38263145.35ea0e",
"topic": "${CCU}/${Interface}/${channel}/${datapoint}",
"x": 1040,
"y": 280,
"wires": [
[]
]
},
{
"id": "90bed931.57e138",
"type": "inject",
"z": "a141d777.f7f18",
"name": "",
"topic": "",
"payload": "Info",
"payloadType": "str",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 1770,
"y": 240,
"wires": [
[
"76476f8b.2dc77"
]
]
},
{
"id": "437a8491.7f7d24",
"type": "weekday",
"z": "a141d777.f7f18",
"name": "Wochentag oder Wochenende?",
"sun": false,
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": false,
"x": 630,
"y": 480,
"wires": [
[
"d14a7f7b.99d2f8"
],
[
"3d44b352.704f8c"
]
]
},
{
"id": "3d44b352.704f8c",
"type": "within-time-switch",
"z": "a141d777.f7f18",
"name": "zwischen 09:00 und 11:59",
"positionConfig": "6db036ad.18af",
"startTime": "09:00",
"startTimeType": "entered",
"startOffset": "",
"startOffsetType": "none",
"startOffsetMultiplier": 60000,
"endTime": "11:59",
"endTimeType": "entered",
"endOffset": "",
"endOffsetType": "none",
"endOffsetMultiplier": 60000,
"propertyStart": "",
"propertyStartType": "none",
"propertyStartCompare": "true",
"propertyStartThreshold": "",
"propertyStartThresholdType": "num",
"startTimeAlt": "",
"startTimeAltType": "entered",
"startOffsetAlt": 0,
"startOffsetAltType": "none",
"startOffsetAltMultiplier": 60000,
"propertyEnd": "",
"propertyEndType": "none",
"propertyEndCompare": "true",
"propertyEndThreshold": "",
"propertyEndThresholdType": "num",
"endTimeAlt": "",
"endTimeAltType": "entered",
"endOffsetAlt": 0,
"endOffsetAltType": "none",
"endOffsetAltMultiplier": 60000,
"tsCompare": "0",
"lastMsgOnStartOut": false,
"lastMsgOnEndOut": false,
"x": 680,
"y": 540,
"wires": [
[
"33c2e2d6.c9cb5e",
"b62f2e2f.8141f"
],
[]
]
},
{
"id": "38263145.35ea0e",
"type": "ccu-connection",
"z": "",
"name": "localhost",
"host": "localhost",
"regaEnabled": true,
"bcrfEnabled": true,
"iprfEnabled": false,
"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",
"queueTimeout": "5000",
"queuePause": "250",
"contextStore": ""
},
{
"id": "97af1815.0b1e",
"type": "volumio-server",
"z": "",
"host": "111.111.111.111",
"port": "3000"
},
{
"id": "6db036ad.18af",
"type": "position-config",
"z": "",
"name": "Berlin",
"isValide": "true",
"longitude": "0",
"latitude": "0",
"angleType": "deg",
"timeZoneOffset": 99,
"timeZoneDST": 0
},
{
"id": "2d53efc7.e061c",
"type": "pushbullet-config",
"z": "",
"name": ""
}
]
Klasse, hat bei mir super funktioniert!!! Vielen Dank
Allerdings möchte ich jetzt gerne eine MP3 abspielen, die ich über node-red definiere.
Also ein Node, indem ich den Pfad+Dateiname angebe, die es mir dann abspielen soll.
z.B.
Play >>> /USB/Music/1.mp3
Gibt es hierfür auch eine schnelle Lösung?
Hallo TR,
ohne, dass ich es selbst getestet hätte, wäre vielleicht dieser Node ein Lösungsansatz für dein Vorhaben…
Liebe Grüße Jens
Danke, werde ich mal am Wochenende versuchen.
Mein Gedanke war, dass ich dies auch über ein Function Node machen kann und dort dann EVENT und URI eintragen kann, allerdings funktioniert dies nicht, oder ich bekomme es zumindest nicht hin…
Gedanke war dies:
https://github.com/maxill1/node-red-contrib-volumio/blob/master/README.md
Ich hatte es mit:
var event = msg.payload;
msg.payload = {
event: event,
uri: „mnt/USB/AUDIO/Test/2.mp3“,
}
return msg;
versucht, allerdings vergebens
auch der Versuch mit
„event“: „replaceAndPlay“,
„pushEvent“: „pushState“,
führte nicht zum Erfolg…