NEWS
In regelmäßigen Abständen type eines DP ändern
-
Ok - im MQTT sollten eigentlich die Datenpunkte automatisch auf mixed gestellt werden. Probier das mal.
-
@docsnyder7 sagte in In regelmäßigen Abständen type eines DP ändern:
aber kann ich den Wert "off", wenn der Set punkt als Number läuft, den Wert String mitgeben?
Wenn das Ding auf mixed steht ja.
-
@mickym bedarf es dazu einer Änderung im adpater?
-
@docsnyder7 Mach das mal nur in dem set datenpunkt und ggf. lässt der Adapter dann den Datenpunkt in Ruhe. Insbesondere bei mqtt
-
@mickym das funktioniert
aber wenn die Tage wieder seitens evcc ein Update kommt, evcc neustartet und die Verbindung zu mqtt neu aufgebaut wird, ist der Datenpunkt Set wieder ne number... da ich nicht ständig schauen will, dachte ich ich könnte automatisiert den Type des DP regelmäßig einfach in string ändern -
@docsnyder7 Bei mixed wird normalerweise der Typ nicht geändert - aber beobachte es mal.
-
@docsnyder7 sagte: kann ich den Wert "off", wenn der Set punkt als Number läuft, den Wert String mitgeben?
Ich kann mir nicht vorstellen, dass der MQTT-Adapter den Datenpunkttyp prüft. Allerdings warnt der js-controller, aber ohne das Schreiben von "off" zu verhindern.
EDIT: Zeige bitte die OBJEKTDATEN des set-DP in Code tags (Bleistift rechts im Expertenmodus).
-
@haus-automatisierung : Bist Du evtl. bei dem MQTT-Code von evcc involviert, oder hast engeren Kontakt dahin? Evtl. könnte das Problem evcc-seitig gelöst werden.
Auf die Idee bin ich gekommen, da auf deren Homepage haus-automatisierung.com erwähnt wird.
-
@peterfido Ne bin ich nicht. Wusste auch gar nicht dass ich dort erwähnt werde
-
{
"_id": "mqtt.1.evcc.loadpoints.1.mode.set",
"common": {
"name": "evcc/loadpoints/1/mode/set",
"write": true,
"read": true,
"role": "variable",
"desc": "mqtt server variable",
"type": "string"
},
"native": {
"topic": "evcc/loadpoints/1/mode/set"
},
"type": "state",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
"from": "system.adapter.admin.0",
"user": "system.user.admin",
"ts": 1725200472142
} -
@docsnyder7
Der DP wurde so automatisch vom MQTT-Adapter erstellt? Oder mit "type": "number"? -
@paul53
bis auf den type = String.. das ist im original vom evcc =numberLaut evcc "Mqtt ist Typ-agnostisch" - Mode wird als String geschickt. Somit sollte der Fehler bei meiner Installation zu suchen sein
Ich konnte das nochmal verifizieren... ein Neustart von evcc oder Update hat doch keinen Einfluss auf den Type, ABER ein neustart seitens Iobroker, das gesamte Systems oder auch nur der mqtt-Instanz bewirkt die Veränderung des DP zu NUMBER
-
@docsnyder7 sagte: neustart ... der mqtt-Instanz bewirkt die Veränderung des DP zu NUMBER
Sehr eigenartiges Verhalten des MQTT-Adapters!
Wenn das so ist, kann man den Instanz-Neustart detektieren und den DP-Typ auf "string" setzen, falls er nicht "string" ist.Inhalt der Funktion typeString(id):
extendObject(id, {common: {type: 'string'}});
-
@paul53
mag es ne Einstellung geben, die dies hervorruft?Herzlichen Dank für die Hilfestellung zum Blockly
der DP mqtt.1.alive ist bei mir true bzw false... ist in dem Fall größer als letztes korrekt?
-
@docsnyder7 sagte: true bzw false... ist in dem Fall größer als letztes korrekt?
Ja, so wird nur bei Änderung false --> true getriggert.
-
@paul53 vielen Dank!
-
@docsnyder7 Evtl. beim Setzen des Wertes ein .toString() anhängen. Wie genau das bei Blockly geht, weiß ich nicht.
-
@peterfido
danke ... hab gestern das Script mal getestet und den mqtt Adapter neugestartet... und das Script hat den DP sofort in String gewandelt