Seit meinem (!) letzten FHEM Update vor 3-4 Tagen funktioniert irgendwas mit dem HTTMOD Modul nicht mehr richtig:
2020.12.07 15:14:40 3: niu_api: error while parsing JSON data: Wide character in subroutine entry at lib/FHEM/HTTPMOD/Utils.pm line 644.
Das kommt bei ausnahmslos jedem Aufruf der Seite (ich "zapfe" den REST Service meines NIU E-Rollers an).
Ich kann leider nicht genau sagen, welchen Versionsstand ich vor dem Update hatte, aber ich schätze ca. 8-12 Monate her...
Mit dem alten Stand hat es noch funktioniert... Linux habe ich zwischenzeitlich nicht aktualisiert.
Wenn ich manuell über Postman den Service abrufe bekomme ich eine gültige JSON Antwort:
Folgend das Device (Ich habe aus Sicherheitsgründen Fahrzeug + Token entfernt - wird also so nicht funktionieren).
defmod niu_api HTTPMOD https://app-api-fk.niu.com/v3/motor_data/index_info?sn=XXXXXXXXXXXXXXXXX
attr niu_api userattr get01JSON reading01JSON reading01Name reading02JSON reading02Name reading03JSON reading03Name reading04JSON reading04Name reading05JSON reading05Name reading06JSON reading06Name requestHeader1
attr niu_api alias Niu Roller
attr niu_api event-on-change-reading .*
attr niu_api extractAllJSON 0
attr niu_api group Außen
attr niu_api reading01JSON data_estimatedMileage
attr niu_api reading01Name estimatedMileage
attr niu_api reading02JSON data_isCharging
attr niu_api reading02Name isCharging
attr niu_api reading03JSON data_batteries_compartmentA_batteryCharging
attr niu_api reading03Name batteryLevel
attr niu_api reading04JSON data_batteries_compartmentA_isConnected
attr niu_api reading04Name isConnected
attr niu_api reading05JSON data_postion_lat
attr niu_api reading05Name gpsLat
attr niu_api reading06JSON data_postion_lng
attr niu_api reading06Name gpsLng
attr niu_api requestHeader1 token: XXXXXXXXXXXXXXXXXXXXXXX
attr niu_api room Steuerung,System
attr niu_api stateFormat Batterie: batteryLevel%, Lädt: isCharging
attr niu_api timestamp-on-change-reading .*
Und die JSON Antwort - gerade über Postman abgeholt:
{
"data": {
"isCharging": 0,
"lockStatus": 0,
"isAccOn": 0,
"isFortificationOn": 0,
"isConnected": true,
"postion": {
"lat": 48.14503166666667,
"lng": 11.427393333333333
},
"hdop": 1,
"time": 1607350702151,
"batteries": {
"compartmentA": {
"bmsId": "XXXXXXXXXXXXXXXXX",
"isConnected": true,
"batteryCharging": 36,
"gradeBattery": "97.4"
}
},
"leftTime": "17.0",
"estimatedMileage": 23,
"gpsTimestamp": 1607350702151,
"infoTimestamp": 1607350702151,
"nowSpeed": 0,
"shakingValue": 3,
"locationType": 2,
"batteryDetail": true,
"centreCtrlBattery": 100,
"ss_protocol_ver": 3,
"ss_online_sta": "1",
"gps": 4,
"gsm": 21,
"lastTrack": {
"ridingTime": 835,
"distance": 5604,
"time": 1605449706727
}
},
"desc": "Erfolg",
"trace": "Erfolg",
"status": 0
}
Hat einer eine Idee, was das Problem sein könnte?
Hallo,
setz doch mal bodyDecode auf none.
(siehe https://forum.fhem.de/index.php/topic,45176.945.html)
Gruss
Stefan
Hallo Stefan,
das scheint tatsächlich zu funktionieren! Ich hab zwar keine Ahnung was der Parameter bewirkt, aber es geht ;-)
Gruß
Alex