Hallo zusammen,
ich bin dabei mein E-Auto über Bluelink an FHEM anzubinden. Habe über NodeRed die Verbindung zu Bluelink hergestellt. Das ganze wird dann über Mqtt an FHEM übergeben.
Ich habe aber Probleme mit den Kommandos von FHEM an NodeRed.
wenn ich diese Setlist benutze funktionieren alle Kommandos:
getOdometer cmnd/bluelinky/get_odometer 1\
getStatus cmnd/bluelinky/get_status 1\
getLocation cmnd/bluelinky/get_location 1\
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac
Aber sobald ich die Setlist erweitere funktionieren nur noch die ersten 3 get-Kommandos
Bei den anderen passiert nichts
getOdometer cmnd/bluelinky/get_odometer 1\
getStatus cmnd/bluelinky/get_status 1\
getLocation cmnd/bluelinky/get_location 1\
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac\
stopAC cmnd/bluelinky/stop_ac\
lockCar cmnd/bluelinky/lock_car\
unlockCar cmnd/bluelinky/unlock_car\
startCharging cmnd/bluelinky/start_charging\
stopCharging cmnd/bluelinky/stop_charging
Findet jemand den Fehler? Bzw. was mache ich falsch.
Hier noch ein list vom Device:
Internals:
CID mqtt_42a39c2b.0c9984
DEF mqtt_42a39c2b.0c9984
DEVICETOPIC MQTT2_mqtt_42a39c2b.0c9984
FUUID 6022875a-f33f-f7a6-48be-b8eeffcfb6215962
IODev m2s
LASTInputDev m2s
MSGCNT 147
NAME MQTT2_mqtt_42a39c2b.0c9984
NR 148
STATE Kilometerstand: XXXX.X km <br>
Akku: 20 % <br>
Türen veriegelt: true <br>
Reichweite: 57 km <br>
Vollgeladen in: ladezeit_Rest Minuten<br>
<br>
AC: Defrost=ac_defrost Windscreen=ac_windscreen <br>
TYPE MQTT2_DEVICE
m2s_MSGCNT 147
m2s_TIME 2021-02-11 09:12:29
Helper:
DBLOG:
airCtrlOn:
DBLogging:
TIME 1613031149.61921
VALUE false
batteryCharge:
DBLogging:
TIME 1613031149.75645
VALUE false
batteryStatus:
DBLogging:
TIME 1613031149.80962
VALUE 20
defrost:
DBLogging:
TIME 1613031149.85612
VALUE false
doorLock:
DBLogging:
TIME 1613031149.52771
VALUE true
engine:
DBLogging:
TIME 1613031149.57479
VALUE false
hoodOpen:
DBLogging:
TIME 1613031149.71006
VALUE false
location:
DBLogging:
TIME 1613030797.79133
VALUE {"latitude":XX.XXXXX,"longitude":X.XXXXX,"altitude":XX,"speed":{"unit":0,"value":0},"heading":XX}
odometer:
DBLogging:
TIME 1613030651.52538
VALUE XXXX.X
range:
DBLogging:
TIME 1613031149.90311
VALUE 57
state:
DBLogging:
TIME 1613031145.68852
VALUE getStatus
trunkOpen:
DBLogging:
TIME 1613031149.66368
VALUE false
READINGS:
2021-02-11 09:12:29 airCtrlOn false
2021-02-11 09:12:29 batteryCharge false
2021-02-11 09:12:29 batteryStatus 20
2021-02-11 09:12:29 defrost false
2021-02-11 09:12:29 doorLock true
2021-02-11 09:12:29 engine false
2021-02-11 09:12:29 hoodOpen false
2021-02-11 09:06:37 location {"latitude":XX.XXXXXX,"longitude":X.XXXXXX,"altitude":XX,"speed":{"unit":0,"value":0},"heading":XX}
2021-02-11 09:04:11 odometer XXXX.X
2021-02-11 09:12:29 range 57
2021-02-11 09:12:25 state getStatus
2021-02-09 14:00:10 subscriptions cmnd/bluelinky/get_location cmnd/bluelinky/get_odometer cmnd/bluelinky/get_status cmnd/bluelinky/lock_car cmnd/bluelinky/start_ac cmnd/bluelinky/stop_ac cmnd/bluelinky/unlock_car
2021-02-11 09:12:29 trunkOpen false
Attributes:
IODev m2s
icon car
readingList bluelinky/doorLock:.* doorLock
bluelinky/engine:.* engine
bluelinky/airCtrlOn:.* airCtrlOn
bluelinky/trunkOpen:.* trunkOpen
bluelinky/hoodOpen:.* hoodOpen
bluelinky/batteryCharge:.* batteryCharge
bluelinky/batteryStatus:.* batteryStatus
bluelinky/defrost:.* defrost
bluelinky/range:.* range
bluelinky/odometer:.* odometer
bluelinky/location:.* location
bluelinky/doors:.* doors
room 21_Garage
setList getOdometer cmnd/bluelinky/get_odometer 1\
getStatus cmnd/bluelinky/get_status 1\
getLocation cmnd/bluelinky/get_location 1\
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac\
stopAC cmnd/bluelinky/stop_ac\
lockCar cmnd/bluelinky/lock_car\
unlockCar cmnd/bluelinky/unlock_car\
startCharging cmnd/bluelinky/start_charging\
stopCharging cmnd/bluelinky/stop_charging
stateFormat Kilometerstand: odometer km <br>
Akku: batteryStatus % <br>
Türen veriegelt: doorLock <br>
Reichweite: range km <br>
Vollgeladen in: ladezeit_Rest Minuten<br>
<br>
AC: Defrost=ac_defrost Windscreen=ac_windscreen <br>
webCmd ac_defrost:ac_windscree
Na ja, es ist schwer zu beantworten, solange du nicht zeigst, wie NodeRed die Daten/Kommandos haben will; meine Glaskugel vermutet, dass eigentlich eine Payload gut wäre...
Was
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac\
angeht, würde ich vermuten, dass das eigentlich so aussehen sollte:
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac $EVTPART1\
Wenn es explizite "get"-Befehle gibt, kann man die auch in eine getList nehmen.
Würde mal tippen, dass das eigentlich eher in diese Richtung aussehen könnte:
attr MQTT2_mqtt_42a39c2b.0c9984 getList\
odometer:noArg odometer cmnd/bluelinky/get_odometer 1\
status:noArg status cmnd/bluelinky/get_status 1\
location:noArg location cmnd/bluelinky/get_location 1
attr MQTT2_mqtt_42a39c2b.0c9984 setList\
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac $EVTPART1\
stopAC:noArg cmnd/bluelinky/stop_ac 1\
doorLock:true,false { my $tpcpart=$EVTPART1?'lock_car':'unlock_car'; cmnd/bluelinky/$tpcpart 1}\
batteryCharge:true,false { my $tpcpart=$EVTPART1?'start_charging':'stop_charging'; cmnd/bluelinky/$tpcpart 1}
attr MQTT2_mqtt_42a39c2b.0c9984 setStateList on off
Zitatstatus:noArg status cmnd/bluelinky/get_status 1\
Soll das so klappen, ja ? Es gibt doch in readingList keinen Eintrag welcher ein status-Reading parsed ?
Oder eher :
Zitatstatus:noArg state cmnd/bluelinky/get_status 1\
Dann hab ich es aber noch nicht ganz verstanden, warum das in state dann landet.
Okay dann versuch ich mal bissle mehr Infos zu bringen.
NodeRed Flow schaut aktuell so aus:
[
{
"id": "ebf7b071.51bcb8",
"type": "tab",
"label": "Bluelink",
"disabled": false,
"info": ""
},
{
"id": "3499c828.b1eb8",
"type": "comment",
"z": "ebf7b071.51bcb8",
"name": "WARNING: please check you have started this container with a volume that is mounted to /data\\n otherwise any flow changes are lost when you redeploy or upgrade the container\\n (e.g. upgrade to a more recent node-red docker image).\\n If you are using named volumes you can ignore this warning.\\n Double click or see info side panel to learn how to start Node-RED in Docker to save your work",
"info": "\nTo start docker with a bind mount volume (-v option), for example:\n\n```\ndocker run -it -p 1880:1880 -v /home/user/node_red_data:/data --name mynodered nodered/node-red\n```\n\nwhere `/home/user/node_red_data` is a directory on your host machine where you want to store your flows.\n\nIf you do not do this then you can experiment and redploy flows, but if you restart or upgrade the container the flows will be disconnected and lost. \n\nThey will still exist in a hidden data volume, which can be recovered using standard docker techniques, but that is much more complex than just starting with a named volume as described above.",
"x": 350,
"y": 80,
"wires": []
},
{
"id": "7f549ad4.a435fc",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/get_status",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 130,
"y": 280,
"wires": [
[
"a7957e1.610938"
]
]
},
{
"id": "353069c5.ce6b56",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/stop_ac",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 120,
"y": 1000,
"wires": [
[
"dbbc432d.93ee08"
]
]
},
{
"id": "e0b58e6e.579658",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/start_ac",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 120,
"y": 920,
"wires": [
[
"edd19b8d.7823e8"
]
]
},
{
"id": "a7957e1.610938",
"type": "car-status",
"z": "ebf7b071.51bcb8",
"name": "Get status",
"dorefresh": true,
"parsed": false,
"bluelinky": "57d6beca.e51cc",
"x": 410,
"y": 200,
"wires": [
[
"4356eb39.661c04",
"8877333.a1fbad",
"4b3e79b2.e7abf8",
"9a8a6b9b.118b2",
"b7632961.00407",
"31fbdc13.456e34",
"2d5abeb2.0b803a",
"cf6f369.9a0bf48",
"4eeeef6d.c4505",
"dca82af8.84f64",
"f0a1fb47.5aab38"
]
]
},
{
"id": "f2ec824e.d64668",
"type": "start-car",
"z": "ebf7b071.51bcb8",
"name": "Start car",
"bluelinky": "57d6beca.e51cc",
"x": 460,
"y": 920,
"wires": [
[
"4356eb39.661c04"
]
],
"inputLabels": [
"airTempvalue: 19.0"
],
"info": "19"
},
{
"id": "dbbc432d.93ee08",
"type": "stop-car",
"z": "ebf7b071.51bcb8",
"name": "Stop car",
"bluelinky": "57d6beca.e51cc",
"x": 460,
"y": 1000,
"wires": [
[
"4356eb39.661c04"
]
]
},
{
"id": "4356eb39.661c04",
"type": "debug",
"z": "ebf7b071.51bcb8",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 770,
"y": 920,
"wires": []
},
{
"id": "50e08739.85f6b",
"type": "unlock-car",
"z": "ebf7b071.51bcb8",
"name": "Unlock car",
"bluelinky": "57d6beca.e51cc",
"x": 470,
"y": 1080,
"wires": [
[
"4356eb39.661c04",
"35fec68.d55b6ba"
]
]
},
{
"id": "d3805456.86999",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/unlock_car",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 130,
"y": 1080,
"wires": [
[
"50e08739.85f6b"
]
]
},
{
"id": "408b95db.d7e13c",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/lock_car",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 120,
"y": 1160,
"wires": [
[
"c4425844.2d0738"
]
]
},
{
"id": "c4425844.2d0738",
"type": "lock-car",
"z": "ebf7b071.51bcb8",
"name": "Lock car",
"bluelinky": "57d6beca.e51cc",
"x": 460,
"y": 1160,
"wires": [
[
"4356eb39.661c04",
"35fec68.d55b6ba"
]
]
},
{
"id": "8ef25edf.50414",
"type": "car-location",
"z": "ebf7b071.51bcb8",
"name": "Get car location",
"bluelinky": "57d6beca.e51cc",
"x": 480,
"y": 1240,
"wires": [
[
"67aabb03.c7f5bc",
"4356eb39.661c04"
]
]
},
{
"id": "6a591a39.b2300c",
"type": "car-odometer",
"z": "ebf7b071.51bcb8",
"name": "Get car odometer",
"bluelinky": "57d6beca.e51cc",
"x": 450,
"y": 780,
"wires": [
[
"4356eb39.661c04",
"d0fd375e.dc6f1"
]
]
},
{
"id": "79871d4f.4e2dc4",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/get_odometer",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 140,
"y": 780,
"wires": [
[
"6a591a39.b2300c"
]
]
},
{
"id": "35fec68.d55b6ba",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/doors",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 740,
"y": 1160,
"wires": []
},
{
"id": "e22b092e.ae4f38",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/odometer",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 870,
"y": 780,
"wires": []
},
{
"id": "ae891725.511b7",
"type": "mqtt in",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "cmnd/bluelinky/get_location",
"qos": "2",
"datatype": "auto",
"broker": "36dd9767.956ae8",
"x": 140,
"y": 1240,
"wires": [
[
"8ef25edf.50414"
]
]
},
{
"id": "67aabb03.c7f5bc",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/location",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 750,
"y": 1240,
"wires": []
},
{
"id": "ec4d2d10.7e274",
"type": "inject",
"z": "ebf7b071.51bcb8",
"name": "Every 2h",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "7200",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 110,
"y": 200,
"wires": [
[
"a7957e1.610938"
]
]
},
{
"id": "8877333.a1fbad",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "doorLock",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.doorLock",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 800,
"y": 160,
"wires": [
[
"a4ffa280.fdc5c"
]
]
},
{
"id": "a4ffa280.fdc5c",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/doorLock",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1010,
"y": 160,
"wires": []
},
{
"id": "d0fd375e.dc6f1",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "odometer",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.value",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 680,
"y": 780,
"wires": [
[
"e22b092e.ae4f38"
]
]
},
{
"id": "6c113766.6f6038",
"type": "inject",
"z": "ebf7b071.51bcb8",
"name": "Every 24h",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "86400",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 110,
"y": 720,
"wires": [
[
"6a591a39.b2300c"
]
]
},
{
"id": "4b3e79b2.e7abf8",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "engine",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.engine",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 790,
"y": 220,
"wires": [
[
"4aaa1bdd.3e5d2c"
]
]
},
{
"id": "4aaa1bdd.3e5d2c",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/engine",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1000,
"y": 220,
"wires": []
},
{
"id": "9a8a6b9b.118b2",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "airCtrlOn",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.airCtrlOn",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 800,
"y": 280,
"wires": [
[
"635adb91.0a4054"
]
]
},
{
"id": "635adb91.0a4054",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/airCtrlOn",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1010,
"y": 280,
"wires": []
},
{
"id": "b7632961.00407",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "trunkOpen",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.trunkOpen",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 810,
"y": 340,
"wires": [
[
"1c54d281.cbda05"
]
]
},
{
"id": "1c54d281.cbda05",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/trunkOpen",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1020,
"y": 340,
"wires": []
},
{
"id": "31fbdc13.456e34",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "hoodOpen",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.hoodOpen",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 810,
"y": 400,
"wires": [
[
"57574906.41612"
]
]
},
{
"id": "57574906.41612",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/hoodOpen",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1020,
"y": 400,
"wires": []
},
{
"id": "cf6f369.9a0bf48",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "batteryStatus",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.evStatus.batteryStatus",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 810,
"y": 460,
"wires": [
[
"34618e01.f2ad4a"
]
]
},
{
"id": "34618e01.f2ad4a",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/batteryStatus",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1020,
"y": 460,
"wires": []
},
{
"id": "dca82af8.84f64",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "defrost",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.defrost",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 790,
"y": 640,
"wires": [
[
"a730e53a.f8532"
]
]
},
{
"id": "a730e53a.f8532",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/defrost",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1000,
"y": 640,
"wires": []
},
{
"id": "4eeeef6d.c4505",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "acc",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.scc",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 790,
"y": 580,
"wires": [
[
"71c9ec3.e8c8214"
]
]
},
{
"id": "71c9ec3.e8c8214",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/acc",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 990,
"y": 580,
"wires": []
},
{
"id": "2d5abeb2.0b803a",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "batteryCharge",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.evStatus.batteryCharge",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 820,
"y": 520,
"wires": [
[
"8895da15.0d1b88"
]
]
},
{
"id": "8895da15.0d1b88",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/batteryCharge",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1030,
"y": 520,
"wires": []
},
{
"id": "f0a1fb47.5aab38",
"type": "change",
"z": "ebf7b071.51bcb8",
"name": "range",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "payload.status.evStatus.drvDistance[0].rangeByFuel.evModeRange.value",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 790,
"y": 700,
"wires": [
[
"799bb116.85f1a8"
]
]
},
{
"id": "799bb116.85f1a8",
"type": "mqtt out",
"z": "ebf7b071.51bcb8",
"name": "",
"topic": "bluelinky/range",
"qos": "",
"retain": "",
"broker": "36dd9767.956ae8",
"x": 1000,
"y": 700,
"wires": []
},
{
"id": "edd19b8d.7823e8",
"type": "json",
"z": "ebf7b071.51bcb8",
"name": "",
"property": "payload",
"action": "",
"pretty": false,
"x": 310,
"y": 920,
"wires": [
[
"f2ec824e.d64668"
]
]
},
{
"id": "36dd9767.956ae8",
"type": "mqtt-broker",
"name": "mosquitto",
"broker": "localhost",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": true,
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"willTopic": "",
"willQos": "0",
"willPayload": ""
},
{
"id": "57d6beca.e51cc",
"type": "bluelinky",
"username": "xxx@xx.de",
"password": "$xxxxxxxx",
"region": "EU",
"pin": "XXXX",
"vin": "xxxxxxxxxxxxxx"
}
]
Hoffe ich hab da alle persönlichen Infos raus :D
Die get-list habe ich so wie von dir gezeigt erstellt. Funktioniert auch soweit. get-status gibt zwar folgenden Syntax-Fehler aus - die Stats kommen trotzdem
fhemweb.js line 1:
SyntaxError: '' literal not terminated before end of script
Zur Set-list
die nimmt es mir so nicht an
syntax error at (eval 98289) line 1, near "$tpcpart 1"
syntax error at (eval 98289) line 1, at EOF
startAC funktioniert allein weiterhin
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac $EVTPART1
Hmm, also mir sagen die NodeRed-JSON wenig bis nichts, mir würde die "Übersetzung" z.B. in mosquitto_pub-Anweisungen eher helfen...
Bei der Perl-setList habe ich mich vertan, das muss man als Text parsen lassen, könnte z.B. so klappen:
attr MQTT2_mqtt_42a39c2b.0c9984 setList\
startAC:slider,17,0.5,27 cmnd/bluelinky/start_ac $EVTPART1\
stopAC cmnd/bluelinky/stop_ac 1\
doorLock:true,false { my $tpcpart=$EVTPART1?'lock_car':'unlock_car'; "cmnd/bluelinky/$tpcpart 1"}\
batteryCharge:true,false { my $tpcpart=$EVTPART1?'start_charging':'stop_charging'; "cmnd/bluelinky/$tpcpart 1"}
Zitat von: TomLee am 11 Februar 2021, 10:36:17
Soll das so klappen, ja ? Es gibt doch in readingList keinen Eintrag welcher ein status-Reading parsed ?
Na ja, der Einwand ist teilweise berechtigt, es kommt ggf. ein timeout. Aber: der Befehl an sich wird abgesetzt...
(Das mag alles noch nicht "rund" sein, wichtiger war mir erst mal, einen "grundsätzlichen Ordnungsvorschlag" zu machen, um das Prinzip zu vermitteln.)
ZitatDann hab ich es aber noch nicht ganz verstanden, warum das in state dann landet.
Da würde ich behaupten, dass es Zufall war: in state steht ohne setStateList eben immer der letzte ausgehende Befehl, und - soweit mir grade in Erinnerung - auch ohne "set". Daher diese eine zusätzliche Zeile "setStateList" ;) ...