Datenabruf von einer API via https / evnotify und Wallbox

Begonnen von roadghost, 09 Januar 2020, 13:12:55

Vorheriges Thema - Nächstes Thema

roadghost

Hallo zusammen,

ich möchte gern einen Wert von einer externen API via https abrufen.

Ist meiner Meinung nach ein simpler aufruf:

https://app.evnotify.de/soc?akey=123456a&token=123456789123456789

Heraus kommt, mit den richtigen Daten (akey = user, token = password) folgendes:

{"soc_display":52.5,"soc_bms":33,"last_soc":1578555836}

Hierbei handelt es sich um den SoC State of Charge eines Elektroauto, welches seinen SoC an einen Server sendet. Die App dazu nennt sich evnotify.

Ich möchte den SoC gern verwenden, um zu Hause beim Laden an der Wallbox, welche leider den SoC nicht vom Auto direkt abfragen kann, die Ladung bei SoC XX zu beenden.

Wie bekomme ich in FHEM die Daten abgerufen ?

Ich bin bei weitem nicht so fit in der Materie, als dass ich das allein hinkriegen kann.....

Gruß

NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

rudolfkoenig

Eine "billige" Loesung waeredefine eApi at +*00:10 { HttpUtils_NonblockingGet({ \
  url=>"https://app.evnotify.de/soc?akey=123456a&token=123456789123456789",\
  callback=>sub() { json2reading("eApi", $_[2]) } \
}) }


Die "richtige" Loesung ist eine HTTPMOD Instanz anzulegen und zu konfigurieren.

roadghost

Hallo rudolfkoenig,

wenn ich deinen "billigen" Vorschlag teste, erhalte ich:

syntax error at (eval 482490) line 1, near "} \"
syntax error at (eval 482490) line 1, near "}}"

Ich versuche mich mal an HTTPMOD, leider kennt sich der Giuseppe (erfinder der App) nicht damit aus, und kann mir demnach nicht helfen.

Gruß
NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

rudolfkoenig

Diese Schreibweise funktioniert, wenn man es im FHEMWEB per + (oben links), per telnet, oder direkt in fhem.cfg eingibt.
Ich fuerchte du hast eine andere Methode gewaehlt, da koennte das weglassen von \, und alles auf einer Zeile schreiben helfen.
Aber ich habe auch nichts gegen HTTPMOD einzuwenden.

amenomade

define SoC HTTPMOD https://app.evnotify.de/soc?akey=123456a&token=123456789123456789 60
attr SoC extractAllJSON 1

sollte reichen, um alle 60s die 3 Werte zu extrahieren
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

roadghost

Zitat von: rudolfkoenig am 09 Januar 2020, 21:53:48
Diese Schreibweise funktioniert, wenn man es im FHEMWEB per + (oben links), per telnet, oder direkt in fhem.cfg eingibt.
Ich fuerchte du hast eine andere Methode gewaehlt, da koennte das weglassen von \, und alles auf einer Zeile schreiben helfen.
Aber ich habe auch nichts gegen HTTPMOD einzuwenden.

Danke, rudolfkoenig, der hinweis des define mittels des +-Zeichen hat zum erfolg geführt.

Ich hatte gestern Abend allerdings noch beobachtet, dass trotz sich änderndem SoC (Auto wurde geladen) der Abruf in FHEM sich nicht änderte / aktualisierte.

Im log von FEHM habe ich keine Hinweise gefunden. Ich teste das übers Wochenende noch weiter aus.
NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

roadghost

Zitat von: amenomade am 10 Januar 2020, 00:07:39
define SoC HTTPMOD https://app.evnotify.de/soc?akey=123456a&token=123456789123456789 60
attr SoC extractAllJSON 1

sollte reichen, um alle 60s die 3 Werte zu extrahieren

Danke, amenomade, dein Vorschlag funktioniert. Ich hatte gestern ein HTTPMOD-Device angelegt, aber mit den attributen noch nicht weitergemacht - ich war einfach zu Müde.

Habe soeben remote das attribut hinzugefügt, und hatte nach 1 Minute die Daten vorliegen. Mal schauen, ob sich diese auch aktualisieren, wenn ich nachher mit dem Wagen fahre.
NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

roadghost

Update von mir:

@rudolfkoenig: Die von Dir vorgeschlagene Lösung aktualisiert sich aus irgendeinem Grund nach mehr als 5 Minuten nicht mehr. Der SoC verändert sich, aber in Fhem stagniert der Wert.

@amenomade: Deine Lösung aktualisiert sich wunderbar. Heute habe ich an userattr und userreadings gebastelt - es aber nicht hinbekommen. Es geht ja nur um das reading soc_display. Wie stelle ich es an, dass ich das reading in der device overview angezeigt bekomme als reinen Wert (ohne %-Zeichen) ?
NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

rudolfkoenig

ZitatDie von Dir vorgeschlagene Lösung aktualisiert sich aus irgendeinem Grund nach mehr als 5 Minuten nicht mehr.
Das at holt die Daten ja auch nur alle 10 Minuten ab (+*00:10)
Aber wie geschrieben: das ist nur 'ne "billig" Version von HTTPMOD.

Status aus Reading kann man z.Bsp. mit stateFormat setzen.

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus