NEWS
Enocean Micropelt MVA004 keine Reaktion
-
@drsnuggles1982 du hast aber schon mit cmd den entsprechenden Befehl zum senden gegeben?
-
@jey-cee ähm ich befürchte mal nein. Wie genau geht das denn ein Befehl zu senden? Bzw gibt es da Doku zumlesen glaub ich hab hier was nicht verstanden
-
@jey-cee
Ich hab mir das ganze jetzt nochmal angeschaut. Habe auch nochmal die Doku von die bei GitHub angeschaut Sieht für mich richtig aus was ich mache.
Wenn der stellantrieb sein rssi sendet. Beschreibe ich die folgenden Variablen mit node red- SPN mit true
- SP mit 24,5 ( Solltemperatur )
- TMP mit 23,2 (Isttemperatur)
- CMD mit 1
Das sollte doch passen? Oder übersehe ich etwas? Muss man was beachten am timing? Oder mit Node red?
Komme da irgendwie nicht weiter.
Wäre für jeden Tipp dankbar.
-
@drsnuggles1982 sieht für mich richtig aus. Mit Node Red hab ich keine Erfahrung.
Beim Timing ist es halt Wichtig innerhalb der Sekunde zu bleiben, aber wenn du auf rssi triggerst sollte das gar kein Thema sein. -
@jey-cee
Mit was automatisiert du denn? Ich wollte morgen mal mit so einem blockly probieren ob man damit bessere Ergebnisse bekommt. -
@drsnuggles1982 Javascript, alles andere ist nur Spielerei
Ne Spaß, ist für mich halt einfacher weil ich ja auch die Adapter in Javascript schreibe.
-
@jey-cee
Hy,
Bin glaub jetzt einen Schritt weiter gekommen.
Bei Node Red gibt es ein Auswahl ob der Datensatz als wert oder als Kommando ausgeführt werden soll. Das stand bei mri immer auf Wert.Wenn ich jetzt schaue sehe ich der Befehl für CMD ausgegeben wird.
enocean.0 2023-10-04 06:58:34.589 debug Packet type 2 received: {"code":"OK"} enocean.0 2023-10-04 06:58:34.589 debug 5500010002650000 enocean.0 2023-10-04 06:58:34.566 debug Sent data: 55000a0701eba58f890408ffacf18c00000580f27aff005b enocean.0 2023-10-04 06:58:34.487 debug state 0580f27a.CMD changed: 1 (ack = false) state: {"val":1,"ack":false,"ts":1696399114476,"q":0,"from":"system.adapter.node-red.0","user":"system.user.admin","lc":1696162542606}
Wenn ich im IObroker schaue steht jetzt beim CMD und bei der Soll Temperatur bestätigt drin.
Bei der SPN Variable steht aber bestätigt "false" drin und sie ist auch rot
Bei der Ist Temepratur wechselt es hin un d her zwischen bestätigt und nicht bestätigt.
Hast du noch ne Idee was da falsch läuft?
Hier mal der Red Node aufbau:
Und Der Flow Code:
[ { "id": "a58e0d71bbc5a058", "type": "subflow", "name": "Heizungscontroller", "info": "", "category": "", "in": [ { "x": 100, "y": 540, "wires": [ { "id": "b05dbf90223cf802" }, { "id": "8d74eb495e40401c" }, { "id": "99e509f2ca9d8cac" }, { "id": "140698d6725877bb" }, { "id": "519e8603c0946fbe" } ] } ], "out": [ { "x": 940, "y": 540, "wires": [ { "id": "b05dbf90223cf802", "port": 0 } ] }, { "x": 940, "y": 580, "wires": [ { "id": "8d74eb495e40401c", "port": 0 } ] }, { "x": 940, "y": 640, "wires": [ { "id": "99e509f2ca9d8cac", "port": 0 } ] }, { "x": 940, "y": 700, "wires": [ { "id": "140698d6725877bb", "port": 0 } ] }, { "x": 930, "y": 760, "wires": [ { "id": "519e8603c0946fbe", "port": 0 } ] } ], "env": [], "meta": {}, "color": "#DDAA99", "outputLabels": [ "Solltemp Norm", "Solltemp High", "Solltemp Low", "Ventil oder Wert", "Kommando" ], "icon": "font-awesome/fa-fire-extinguisher" }, { "id": "9e43172ad190f717", "type": "inject", "z": "a58e0d71bbc5a058", "name": "Morgen Woche", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "00 06 * * 1,2,3,4,5", "once": true, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 140, "y": 100, "wires": [ [ "9db8294f95d87daa", "1cc072673e536fcf", "690d08a2fc06723a" ] ] }, { "id": "9b2e7235614e4143", "type": "inject", "z": "a58e0d71bbc5a058", "name": "Morgen Wochenende", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "00 06 * * 6,0", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 160, "y": 160, "wires": [ [ "9db8294f95d87daa", "1cc072673e536fcf", "690d08a2fc06723a" ] ] }, { "id": "c20b1e06075509d0", "type": "inject", "z": "a58e0d71bbc5a058", "name": "Abend Wochenende", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "00 21 * * 6,0", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 180, "y": 440, "wires": [ [ "26e77124fc80c306", "ae9086b614a58024", "209223aa2c0b1259" ] ] }, { "id": "149fdf1f43e76ece", "type": "inject", "z": "a58e0d71bbc5a058", "name": "Abend Woche", "props": [ { "p": "payload" } ], "repeat": "", "crontab": "00 21 * * 1,2,3,4,5", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 152, "y": 385, "wires": [ [ "26e77124fc80c306", "ae9086b614a58024", "209223aa2c0b1259" ] ] }, { "id": "b05dbf90223cf802", "type": "change", "z": "a58e0d71bbc5a058", "name": "Normal Temp", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "TempOutputNorm", "tot": "global" }, { "t": "set", "p": "topic", "pt": "msg", "to": "SP", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 540, "wires": [ [] ] }, { "id": "9db8294f95d87daa", "type": "change", "z": "a58e0d71bbc5a058", "name": "", "rules": [ { "t": "set", "p": "TempOutputNorm", "pt": "global", "to": "21.5", "tot": "num" }, { "t": "set", "p": "payload", "pt": "msg", "to": "TempOutputNorm", "tot": "global" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 450, "y": 140, "wires": [ [] ] }, { "id": "1cc072673e536fcf", "type": "change", "z": "a58e0d71bbc5a058", "name": "", "rules": [ { "t": "set", "p": "TempOutputHigh", "pt": "global", "to": "22.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 180, "wires": [ [] ] }, { "id": "690d08a2fc06723a", "type": "change", "z": "a58e0d71bbc5a058", "name": "", "rules": [ { "t": "set", "p": "TempOutputLow", "pt": "global", "to": "20.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 480, "y": 220, "wires": [ [] ] }, { "id": "26e77124fc80c306", "type": "change", "z": "a58e0d71bbc5a058", "name": "", "rules": [ { "t": "set", "p": "TempOutputNorm", "pt": "global", "to": "21.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 300, "wires": [ [] ] }, { "id": "ae9086b614a58024", "type": "change", "z": "a58e0d71bbc5a058", "name": "", "rules": [ { "t": "set", "p": "TempOutputHigh", "pt": "global", "to": "22.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 340, "wires": [ [] ] }, { "id": "209223aa2c0b1259", "type": "change", "z": "a58e0d71bbc5a058", "name": "", "rules": [ { "t": "set", "p": "TempOutputLow", "pt": "global", "to": "20.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 480, "y": 380, "wires": [ [] ] }, { "id": "8d74eb495e40401c", "type": "change", "z": "a58e0d71bbc5a058", "name": "Hohe Temp", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "TempOutputHigh", "tot": "global" }, { "t": "set", "p": "topic", "pt": "msg", "to": "SP", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 580, "wires": [ [] ] }, { "id": "99e509f2ca9d8cac", "type": "change", "z": "a58e0d71bbc5a058", "name": "Niedrige Temp", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "TempOutputLow", "tot": "global" }, { "t": "set", "p": "topic", "pt": "msg", "to": "SP", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 500, "y": 640, "wires": [ [] ] }, { "id": "140698d6725877bb", "type": "change", "z": "a58e0d71bbc5a058", "name": "Param Temp", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" }, { "t": "set", "p": "topic", "pt": "msg", "to": "SPN", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 700, "wires": [ [] ] }, { "id": "519e8603c0946fbe", "type": "change", "z": "a58e0d71bbc5a058", "name": "Param Temp", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "1", "tot": "num" }, { "t": "set", "p": "topic", "pt": "msg", "to": "CMD", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 490, "y": 760, "wires": [ [] ] }, { "id": "dfa4bdf80fa15f4d", "type": "ioBroker in", "z": "072ab71bed3742f5", "name": "RSSI WC Node", "topic": "enocean.0.0580f27a.rssi", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "MQTT", "x": 320, "y": 180, "wires": [ [ "ec0c75c179347630", "ef825d1874d8ad86" ] ] }, { "id": "f63c51c4c87a7c34", "type": "ioBroker out", "z": "072ab71bed3742f5", "name": "Heizung TMP WC", "topic": "enocean.0.0580f27a.TMP", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 950, "y": 120, "wires": [] }, { "id": "ec0c75c179347630", "type": "ioBroker get", "z": "072ab71bed3742f5", "name": "Temp WC Node", "topic": "enocean.0.051a9081.TMP", "attrname": "payload", "payloadType": "value", "errOnInvalidState": "nothing", "x": 600, "y": 120, "wires": [ [ "f63c51c4c87a7c34" ] ] }, { "id": "9ddf81d50fe9c602", "type": "ioBroker out", "z": "072ab71bed3742f5", "name": "Heizung SPN WC", "topic": "enocean.0.0580f27a.SPN", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 930, "y": 320, "wires": [] }, { "id": "af43b5472b8dfaa0", "type": "ioBroker out", "z": "072ab71bed3742f5", "name": "Heizung Soll WC", "topic": "enocean.0.0580f27a.SP", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 930, "y": 260, "wires": [] }, { "id": "ef825d1874d8ad86", "type": "subflow:a58e0d71bbc5a058", "z": "072ab71bed3742f5", "name": "", "x": 570, "y": 280, "wires": [ [], [ "af43b5472b8dfaa0" ], [], [ "9ddf81d50fe9c602" ], [ "7c0e167a235012d6" ] ] }, { "id": "7c0e167a235012d6", "type": "ioBroker out", "z": "072ab71bed3742f5", "name": "Heizung CMD WC", "topic": "enocean.0.0580f27a.CMD", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 930, "y": 380, "wires": [] } ]
Gruß und Danke
Felix -
let cond0 = false; on({id: "enocean.0.0580f27a.rssi", change: "any"}, async function (obj) { _sendToFrontEnd(1696444858506, {val: obj.state.val, ack: obj.state.ack, valOld: obj.oldState && obj.oldState.val, ackOld: obj.oldState && obj.oldState.ack}); const _cond = true; if (_cond) { // set state enocean.0.0580f27a.CMD to 1 const subActionVar1696444894413 = 1; _sendToFrontEnd(1696444894413, {val: subActionVar1696444894413, ack: false}); await setStateAsync("enocean.0.0580f27a.CMD", subActionVar1696444894413, false); // set state enocean.0.0580f27a.SP to 22.8 const subActionVar1696444917642 = 22.8; _sendToFrontEnd(1696444917642, {val: subActionVar1696444917642, ack: false}); await setStateAsync("enocean.0.0580f27a.SP", subActionVar1696444917642, false); // set state enocean.0.0580f27a.SPN to true const subActionVar1696444942344 = true; _sendToFrontEnd(1696444942344, {val: subActionVar1696444942344, ack: false}); await setStateAsync("enocean.0.0580f27a.SPN", subActionVar1696444942344, false); // set state enocean.0.0580f27a.TMP to 21.45 const subActionVar1696444966437 = 21.45; _sendToFrontEnd(1696444966437, {val: subActionVar1696444966437, ack: false}); await setStateAsync("enocean.0.0580f27a.TMP", subActionVar1696444966437, false); } else { } }); /*
@jey-cee hab es jetzt auch mal mit rules probiert mit dem selben Ergebnis.
Die beiden werte SPN und TMP werden nicht bestätigt.
Wäre es denkbar das du mir mal einen Testcode im javascript schickst?
Beruflich hab ich mit C# zu tun wenn auch nur teilweise denke das javascript krieg ich mit etwas Hilfe auch direkt hin
-
@jey-cee Für dich zur Info. habe jetzt mal auf einfache Venti Steueurng umgestellt. gleiches ergbeniss, die werte werden soweit ich das sehe korrekt von iobroker abgesendete und auch bestätigt. Aber das Ventil reagiert nicht. Habe es auch an mehreren MVA's probiert überall das selbe ergebniss.
Hab jetzt mal das datenpaket was mir angezeigt wird zerlegt.
Ich sehe aber keine Fehler
Die gesendeten Daten von iobroker kommen durch und werden dann mit 0x00 quittiert.Hier mal zerlegt das DatenTelegramm welches gesendet wird. Nach der Doku von enocean ein 4BS Radio Telegramm
Enocean.xlsx
Und der Auszug aus der Doku von Micropelt
Bin mit meinem Latein am Ende.
-
@drsnuggles1982 jetzt hab ich mir die Zeit genommen und deine Daten durchgeschaut.
Ich Denke das Problem ist das du die IST Temperatur (TMP) mit sendest die der von dir gewünschten SOLL Temperatur entspricht bzw. zu nah dran ist.
Dadurch wird das MVA004 nie irgendwas machen. -
@jey-cee ja das Beispiel war nicht perfekt. -wollte damit eher ausprobieren ob das Daten-Telegram stimmt. Aber das sieht ja gut aus. Auch bei deutlichen Unterschieden wie Soll25 zu ist 20 grad passiert nichts
Und wenn ich wie im ersten Beispiel in der Excel sage Ventilöffnung 30% muss ja was passieren. Aber da passiert auch exakt gar nichts.Selbst wenn ich den Befehl Ventil öffnen sende passiert nichts. Der ist ja eigentlich für Service Zwecke und sollte immer gehen. Es passiert einfach nichts. Hast du noch andere Ideen? Hatte dich mal angeschrieben per E-Mail aus GitHub ob ich dir mal eine schicken kann, das du dir das direkt am System anschaust.
-
@jey-cee Ich bin durch zufall über eine kleine Software von Micropelt gestolpert mit der man den Stellantrieb testen kann. Damit läuft er ohne Probleme und arbeitet wie er soll.
Hier kann man das Tool runterladen
https://www.micropelt.com/produkte/enocean/mva008Ich gehe also davon aus das das telegramm welches von iobroker gesendet wird nicht 100% korrekt ist. Das zeigt auch das Gerät an wenn man ein Telegramm erzwingt. Dann blinkt die rote LED 3 mal.
Also hab ich mir mit Dolphin View mal den Datensatz angeschaut. Er sieht erstmal gut für mich im datenbereich aus. Allerdings gibt es zwei unterschiede im sub telegramm.
Hier mal die beidne datensätze
-
Mit diesem funktioniert es einwandfrei
-
Mit diesem funktioniert es nicht
Der deutlichstge unterschied sit das der funktionierende einen Broadcast auftrag an das ganze netz raus jagt währnd iobroker eine dezidierte Adresse anspricht. Laut Beschreibung sollte das aber auch so gehen.
Was ich als falsch interptrtiere sit die 0 davor. Laut Doku sollte bei gesendetem Telegramm hie rimmer eine 3 stehen
Warum dort eine 6 steht im funktionierenden Telegram ist mir auch unklar.Kann man das schnell irgendwo in einer Datei anpassen das aus der 0 eine 3 wird? Oder geht das nur mit neu kompilieren etc.?
-
-
@drsnuggles1982 sagte in Enocean Micropelt MVA004 keine Reaktion:
Was ich als falsch interptrtiere sit die 0 davor. Laut Doku sollte bei gesendetem Telegramm hie rimmer eine 3 stehen
Meine Interpretation der Doku an dieser stelle ist das es sich um Nummer des Subtelegramms handelt, also fortlaufende Nummerierung. Das würde auch die 6 erklären.
@drsnuggles1982 sagte in Enocean Micropelt MVA004 keine Reaktion:
Kann man das schnell irgendwo in einer Datei anpassen das aus der 0 eine 3 wird?
Einfach in der Main.js in Zeile 283
const subTelNum = [0x00];
anpassen und Adapter neu starten.
-
@jey-cee sagte in Enocean Micropelt MVA004 keine Reaktion:
Einfach in der Main.js in Zeile 283
const subTelNum = [0x00];
anpassen und Adapter neu starten.
Bevor ich jetzt was falsch mach kannst du mir den Pfad auf dem raspberry Pi sagen wo die Datei liegt?
-
/opt/iobroker/node_modules/iobroker.enocean/
-
@jey-cee ok ich probiere es später mal und geb Bescheid
-
@jey-cee said in Enocean Micropelt MVA004 keine Reaktion:
/opt/iobroker/node_modules/iobroker.enocean/
irgendwie macht er das nicht.
Obwohl im log jetzt eine 3 drin steht:
sind in den optinal daten die real gesendet werden immer noch die 0 drin
in der Main.js ist es geändert. Adapter und Host wurden neu gestartet
(Bei mir ist es aber Zeile 282. Gibt es da ein update was mir fehlt?
-
@drsnuggles1982 die Daten werden vom Empfänger angenommen und verarbeitet. Das heist was am USB Anschluss ankommt ist nicht 1:1 das was über Funk ankommt.
Ich hatte/hab ein Stick in dem ist der Transparenzmodus eingeschalten, der leitet die Telegramme wie sie ankommen durch.Vielleicht kannst du den bei dir auch irgendwie mot Dolphin view aktivieren.
-
@jey-cee
Hy, ich lass jetzt mal meine Figner raus. du solltest morgen eine Stellantrieb von mir bekommen. dann hoffe ich das du das Problem schnell finden kannst.Ich stochere hier auch nur im drüben.
-
@drsnuggles1982 so Problem gefunden. Bitte installiere von Github neu. Du musst alle Thermostate neu anlernen.
Es ist Wichtig das du möglichst alle zum Testen anlernst und darauf achtest ob die Thermostate unerwartetes verhalten zeigen.