Hallo Speedy
Herzlichen Dank für Deine Arbeit. Auf das disable habe ich seit Ewigkeiten gewartet :-)
Leider tut das neue Modul bei mir nicht (richtig). Wenn ich ein Device anlege (define Akt_myStrom_Name myStrom 192.168.10.38) wirft FHEM Fehler:
: Akt_myStrom_Name: new/changed device definition, call info report to get data from device using default URL
: Akt_myStrom_Name: myStrom_Get calling URL: [http://192.168.10.38/api/v1/info]
: Akt_myStrom_Name: myStrom_sendUrl_ReceiveData_Blocking, call executed in 60ms, error: []
: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_myStrom.pm line 1195.
: Akt_myStrom_Name: myStrom_decodeJSON, error: [malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<ht...") at ./FHEM/98_myStrom.pm line 1249.
]
: Akt_myStrom_Name: myStrom_Get calling URL: [http://192.168.10.38/api/v1/device]
: Akt_myStrom_Name: myStrom_sendUrl_ReceiveData_Blocking, call executed in 45ms, error: []
: Akt_myStrom_Name: myStrom_decodeJSON, error: [malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<ht...") at ./FHEM/98_myStrom.pm line 1249.
]
2023.01.12 17:44:24 1: define Akt_myStrom_Name myStrom 192.168.10.38: Error decoding response from adapter - not JSON! Wrong IP address?? Error:malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE html>\n<ht...") at ./FHEM/98_myStrom.pm line 1249.
Was ich merkwürdig finde, wenn ich das Gerät direkt mit curl befrage, kommt tatsächlich kein JSON zurück, sondern HTML, also die Webseite:
curl --location -g --request GET 'http://192.168.10.38/api/v1/device' -H 'Accept: application/json' -H 'Content-Type: application/json'
<!DOCTYPE html>
<html lang="en">...
Hingegen sind manche Abrufe richtig formatiert:
curl --location -g --request GET 'http://192.168.10.38/info'
{
"version": "2.68.10",
"mac": "XXXXXXXXXX",
"ssid": "SSID",
"ip": "192.168.10.38",
"mask": "255.255.255.0",
"gateway": "192.168.10.1",
"dns": "192.168.10.1",
"static": true,
"connected": true,
"connectionStatus": {
"ntp": true,
"dns": true,
"connection": true,
"handshake": true,
"login": true
}
Ist es denkbar, dass die alten V1-Switches nicht unterstützt werden?
Ein Switch V2 funktioniert aber auch nicht, dort erhalte ich die Fehlemeldung:
: Akt_myStrom_Test: new/changed device definition, call info report to get data from device using default URL
: Akt_myStrom_Test: myStrom_Get calling URL: [http://192.168.10.60/api/v1/info]
: Akt_myStrom_Test: myStrom_sendUrl_ReceiveData_Blocking, call executed in 43ms, error: []
: define Akt_myStrom_Test myStrom 192.168.10.60: define failed: myStrom adapter/device type unknown OR device unreachable
Hier liefert curl aber richtig:
curl --location -g --request GET 'http://192.168.10.60/info'
{"version":"4.0.4","mac":"XXXXXXXX","ssid":"SSID","ip":"192.168.10.60","mask":"255.255.255.0","gw":"192.168.10.1","dns":"192.168.10.1","static":true,"connected":true,"type":"WS2","name":"WiFi Switch v2 CH","connectionStatus":{"ntp":true,"dns":true,"connection":true,"handshake":true,"login":true}}
Danke vorab für Deine Hilfe. Viele Grüsse, Ric.