Hallo zusammen,
ich hoffe, dass ich über diesen Weg einige Weggefährten finden kann, die mit mir zusammen den SMA EV-Charger, zumindest über HTTPMOD in FHEM implementieren.
Zusammen mit DS_Starter haben wir es geschafft, den EV Charger schon einzubinden und einige Funktionen über FHEM zu steuern, leider wurden durch Sicherheitsmechanismen von Seiten SMA auf dem Sunny Portal erstmal wieder ein Riegel vorgeschoben.
Meine Idee ist es nun den direkten Weg über das Webinterface zum EV-Charger zu finden. Laut Doku sollte Modbus rausfallen.
Folgende Informationen könnten gelesen/ gesteuert werden:
Read:
- Status über die Wallbox
- Status über ein angeschlossenes Fahrzeug
- aktuelle Verbrauchswerte
- historische Ladewerte
Set:
- Setzen der Parameter für prognostiziertes Laden
--> Daraus einen mögliche Direktstart provozieren
Gerne können wir über Teamviewer mal eine Session starten und die Wallbox versuchen einzubinden und Möglichkeiten auszuloten.
Sollte ich Interessenten mit oder auch ohne EV-Charger geweckt haben, die zudem noch mehr Peilung vom HTTPMOD Modul haben würde ich mich freuen.
Grüße aus Essen
kamik
Hallo kamik,
da ich seit ein paar Wochen auch einen EV Charger besitze und durch das Problem des gesperrten Zugriffs auf das SMA Portal eine andere Lösung suche, habe ich mal ein wenig mit einem Python Script rumgebastelt. Wahrscheinlich würde man es auch irgendwie mit httpmod hinbekommen. Hier kenne ich mich im Moment aber zuwenig aus, um den Login Prozess mit entsprechenden Session Cookie und Bearer Token hinzubekommen. Vielleicht gibt es ja Experten, die sich hier besser auskennen und mit meinem Script eine erste Basis haben.
Vielleicht hat ja auch jemand Lust, direkt ein kleines Modul zu realisieren. Bis ich mich in das Thema eingearbeitet habe, dauert es wahrscheinlich ewig ;)
Mein Script kann aktuell den Status des Chargers abrufen. Das Setzen von Parametern zur Ladesteuerung kommt dann im nächsten Schritt. Weiterhin möchte ich anmerken, dass ich kein Programmierprofi bin und bestimmte Dinge wahrscheinlich auch noch besser umgesetzt werden können. Nachfolgend möchte ich kurz meinen Ansatz erläutern:
- Login erfolgt im Prinzip, wie über die Browseroberfläche. Man kann sich also mit einem bestehenden User für den EV Charger anmelden
- Beim Login wird eine SessionID ermittelt und man erhält einen Bearer Token zurück, mit dem die weiteren Anfragen erfolgen
- den Status bekommt man dann über einen Web-Aufruf als Json Code zurück
- zur Einbindung in FHEM habe ich mich entschieden, das Python Script über ein DOIF regelmäßig aufzurufen
- damit möglichst nichts geblockt wird, führt das Script dann ein setreading über eine URL zu fhem aus und setzt aktuell einfach den kompletten JSON-String in das Reading
- ich habe ein Reading im DOIF genutzt und reagiere dann auf die Änderung, indem ich eine Funktion in der myutil99 aufrufe (die fehlt aktuell noch)
- in der Funktion kann dann der JSON-String ausgewertet werden und die gewünschten Werte können dann z.B. in einen Dummy geschrieben werden
- die Bedeutung der JSON-Werte findet man im EV Charger auf der Seite "Momentanwerte"
Das beigefügte Python Script muss also nur irgendwo in den Pfad von fhem gelegt werden (oder irgendwo auf dem Server, wo man es von fhem aus aufrufen kann). Im Script müssen dann zu Beginn die persönlichen Werte (IP Adresse der Wallbox, user, passwort, fhem Adresse, Device, Reading) in die entsprechenden Variablenzuweisungen eingetragen werden.
Für einen ersten Test sollte das dann eigentlich schon funktionieren. Im nächsten Schritt würde ich dann mal schauen, wie das Setzen der Parameter funktioniert. Da ich mich mit Web-Programmierung nicht so gut auskenne, ist mir auch nicht klar, ob es geschickt ist, sich jedesmal neu anzumelden. Da es auch eine Möglichkeit gibt, mittels refresh token einen neuen access token zu erhalten, wäre es vielleicht sinnvoller, sich einmal anzumelden, die Werte (in einer Datei) zu speichern und immer nur den Status abzurufen. Das würde ich auch nochmal testen.
Ansonsten noch der Hinweis, dass ich keine Verantwortung für die Nutzung des Scripts übernehme.
UPDATE: 06.01.2021: (neues Script) Änderung des URL-Aufrufs gegen einen os-Aufruf für das Setzen des Readings mit dem Json-Ergebnis. Außerdem werden jetzt dank Hinweis von kamik die Werte der Wallbox ermittelt und nicht der "Anlage"
UPDATE: 14.01.2021: Neues Modul 76_SMAEVCharger.pmDie erste Version eines Moduls steht nun zum Testen bereit. Ich werde jede aktualisierte Version hier wieder bereit stellen. Datei ins Verzeichnis "FHEM" zu den anderen Modulen kopieren und dann in der FHEM Befehlszeile reload 76_SMAEVCharger eingeben. Ein Device kann dann wie folgt angelegt werden:
define <NAME> SMAEVCharger <IP> <user> <passwort>
Aktuell muss noch die IP (idealerweise ohne http) angegeben werden. Als User muss ein Benutzer mit Administratorrechten angegeben werden, sonst können nur die Live-Daten gelesen werden und keine Parameter. In diesem Fall kann man dann auch keine Parameter für den Ladevorgang angeben.
Zurzeit habe ich nicht alle verfügbaren Parameter angezeigt. Kann auf Wunsch aber schnell angepasst werden. Sind aus meiner Sicht aber viele uninteressante Infos dabei, die in FHEM nicht wirklich nutzbar sind. Aktuell können auch nur die Parameter für einen Ladvorgang gesetzt werden. Hierzu muss dann die Dauer und die Menge angegeben werden. Erst dann lässt sich die Betriebsart anpassen. Die Funktion "Schnellladen", die über die Weboberfläche verfügbar ist, habe ich noch nicht getestet.
Viel Spaß mit dem Modul und gebt Bescheid, wenn es Probleme gibt oder Anforderungswünsche bestehen. Ich habe versucht, möglichst viele Eingaben abzufangen. Trotzdem kann ich nicht für eine 100% Funktionsfähigkeit garantieren und die Nutzung geschieht daher auf eigene Gefahr.
UPDATE: 24.01.2021: Neue Version vom Modul 76_SMAEVCharger.pmIn der neuen Version (0.0.5) wurden ein paar Bugs behoben, so dass auch möglichst die Warnungen verschwinden. Weiterhin habe ich ein Attribut "detail-level" eingeführt. Damit können die Readings eingegrenzt werden (0:basic 1:advanced 2:expert). Wer hier Vorschläge zur Verschiebung der Daten in die jeweiligen Kategorien hat, gerne her damit. Ich habe sie erst einmal nach meinen Vorstellungen zugeordnet.
Weiterhin gibt es nun auch noch ein Reading Start_Verbindung, in dem das letzte Anstecken dokumentiert wird und im Reading Anzahl_Ladevorgaenge werden nun alle Ladevorgänge seit dem letzten Anstecken gezählt.
Mit der Doku im Modul bin ich leider noch nicht soweit.
UPDATE: 07.02.2021: Neue Version vom Modul 76_SMAEVCharger.pmIn der neuen Funktion sind folgende Features eingebaut worden und die Dokumentation des Moduls wurde erstellt:
- Reading "Schnellabschaltung" wurde auf detail-level 0 gesetzt
- Einführung eines Attributs "setting-level" mit dem in drei Stufen das Setzen von Parametern gesteuert werden kann
- Beim Ändern der Lademenge während einer Ladung mit Vorgabe wird nun die ursprüngliche Zeit beibehalten. Es wird also eine neue Dauer eingetragen
UPDATE: 05.07.2021: Neue Version vom Modul 76_SMAEVCharger.pmIn den Echtzeitdaten wurde die Info zum Drehschalter aufgenommen ("intelligente Ladung" oder "Schnellladung")
Einige Bugs hinsichtlich der Warnung von nicht initialisierten Werten wurden behoben
UPDATE: 14.11.2021: Neue Version 0.9 vom Modul 76_SMAEVCharger.pmEinige Fehler wurden behoben:
- "Schnellladen" kann man nicht setzen und wurde aus den Optionen für Param_Betriebsart_Ladevorgang entfernt. Dieser Wert wird nur angezeigt, wenn der Drehschalter an der Wallbox so eingestellt wurde
- Den Hinweis bzw. die Fehlerabfrage, dass beim logon evtl. body/header nicht gefüllt sein können und zum Absturz von fhem führen habe ich entsprechend eingebaut
- Bei der Prüfung der notwendigen Werte zu Laden mit Vorgabe gab es einen Fehler, so dass eine Fehlermeldung angezeigt wurde, obwohl die Werte gesetzt waren
- Obwohl fehlerhafte Werte gesetzt wurden und eine Fehlermeldung angezeigt wurde, wurde der Set-Befehl ausgeführt, das ist nun behoben
UPDATE: 12.12.2021: Neue Version 0.91 vom Modul 76_SMAEVCharger.pmKleinerer Bugfix für ein Warning einer undefinierten Variablen
Das ursprüngliche Python Script wurde aus dem Beitrag entfernt
UPDATE: 02.01.2022: 76_SMAEVCharger.pm ist nun im SVN verfügbar und sollte ab 03.01. 8:00 hoffentlich per Update installiert werdenin dieser Version (0.92) habe ich noch den Bug mit dem "use JSON" gefixt
Ich habe jetzt mal eine kleine Funktion geschrieben, die die Werte in einen Dummy schreiben. Hierbei werden eigentlich nur 3 Werte direkt von der Wallbox benötigt. Die anderen Werte kommen eigentlich vom EnergyMeter. Da das E-Auto gerade nicht da ist, kann ich auch nicht ermitteln, woran man erkennt, ob es angeschlossen ist. Ich nehme an, dass dies am "Zustand" erkennbar ist. Aktuell steht dieser Wert auf 307 und in der Weboberfläche wird "Ok" angezeigt. Auch hier gilt wieder: gerne Anregungen, für besseren Code ;-)
Im Code ist "diKiaStatus" mein DOIF mit dem ich u.a. auch ein Script für den SOC des Kia aufrufe und duWallbox das Dummy Device für die Wallbox-Werte.
#
# Funktion zur Konvertierung des EV Charger Status in einen Dummy
#
sub EVCH_Status()
{
# Zur Umwandlung in lesbare Readings und falls sich die Reihenfolge einmal ändern sollte
# Eigentlich sind wohl nur die ersten drei Werte von der Ladestation
# Die übrigen Werte kommen vom EnergyMeter
# zu jedem Wert wird auch ein Timestamp (UTC) übermittelt, den habe ich erst einmal weggelassen
my $readings = { "Measurement.GridMs.TotVAr" => "Blindleistung",
"Measurement.Metering.GridMs.TotWIn.ChaSta" => "Leistung_Ladestation", #in W
"Measurement.Metering.GridMs.TotWhIn.ChaSta" => "Zaehlerstand_Ladestation", #in Wh
"Measurement.Metering.PCCMs.PlntA.phsA" => "Ausgangsstrom_Phase_L1",
"Measurement.Metering.PCCMs.PlntA.phsB" => "Ausgangsstrom_Phase_L2",
"Measurement.Metering.PCCMs.PlntA.phsC" => "Ausgangsstrom_Phase_L3",
"Measurement.Metering.PCCMs.PlntCsmpW" => "Leistung_Netzbezug", # in W
"Measurement.Metering.PCCMs.PlntCsmpWh" => "Energiebezug_Netz", # in Wh
"Measurement.Metering.PCCMs.PlntHz" => "Netzfrequenz",
"Measurement.Metering.PCCMs.PlntPF" => "Verschiebungsfaktor",
"Measurement.Metering.PCCMs.PlntPhV.phsA" => "Netzspannung_Phase_L1",
"Measurement.Metering.PCCMs.PlntPhV.phsB" => "Netzspannung_Phase_L2",
"Measurement.Metering.PCCMs.PlntPhV.phsC" => "Netzspannung_Phase_L3",
"Measurement.Metering.PCCMs.PlntVAr" => "Anlagenblindleistung",
"Measurement.Metering.PCCMs.PlntVAr.phsA" => "Anlagenblindleistung_Phase_L1",
"Measurement.Metering.PCCMs.PlntVAr.phsB" => "Anlagenblindleistung_Phase_L2",
"Measurement.Metering.PCCMs.PlntVAr.phsC" => "Anlagenblindleistung_Phase_L3",
"Measurement.Metering.PCCMs.PlntW" => "Leistung_Netzeinspeisung", # in W
"Measurement.Metering.PCCMs.PlntW.phsA" => "Leistung_Netzeinspeisung_Phase_L1", # in W
"Measurement.Metering.PCCMs.PlntW.phsB" => "Leistung_Netzeinspeisung_Phase_L2", # in W
"Measurement.Metering.PCCMs.PlntW.phsC" => "Leistung_Netzeinspeisung_Phase_l3", # in W
"Measurement.Metering.PCCMs.PlntWh" => "Energieeinspeisung_Netz", # Wh
"Measurement.Operation.Health" => "Zustand" # 'Ok' anscheinend Wert 307 (könnte für "nicht angeschlossen" stehen) / keine Ahnung, was im Fehlerfall angezeigt wird
};
# Abfrage des Readings, in dem das Script sein Ergebnis rein geschrieben hat
my $status = ReadingsVal("diKiaStatus", "WallboxAPI", "unbekannt");
my $json = decode_json( $status );
foreach my $item ( @$json )
{
fhem("setreading duWallbox ".$readings->{$item->{"channelId"}}." ".$item->{"values"}->[0]->{"value"});
#Log 3, "Wallbox JSON:".$item->{"channelId"}.' Reading:'.$readings->{$item->{"channelId"}}.' Wert:'.$item->{"values"}->[0]->{"value"};
}
}
Hi Jual,
das sieht schon super aus. Ich werde es gleich mal testen.
Was hälst du von der Idee die Readings an einen MQTT Broker zu senden? Und dann mit expandJSON in einzelne Readings zu legen?
bgwehr hat sowas ähnliches für das python CarNet Skript für die VW Daten geschrieben.
https://forum.fhem.de/index.php?topic=83090.0
Zitat von: Kamik am 05 Januar 2021, 19:23:17
Was hälst du von der Idee die Readings an einen MQTT Broker zu senden? Und dann mit expandJSON in einzelne Readings zu legen?
bgwehr hat sowas ähnliches für das python CarNet Skript für die VW Daten geschrieben.
Das schaue ich mir gerne einmal an. Allerdings hatte ich bisher mit MQTT noch keine Berührungen. Wenn unser Auto morgen wieder da ist, dann werde ich allerdings zunächst einmal testen, wie ich die Steuerung der Wallbox über das Script hinbekomme. Dann habe ich auch noch eine Idee, wie ich evtl. eine Art Wochenplaner realisiere. Aus meiner Sicht müsste es möglich sein, dass immer bei Erreichen eines minimalen SOC eine Ladung angestoßen wird, die dann idealerweise bis zur nächsten Abfahrt (falls man feste Abfahrzeiten definieren kann) eine vordefinierte Leistung lädt. Also beispielsweise: wenn SOC kleiner 30% dann lade bis zur nächsten Abfahrt eine Energiemenge für einen SOC von 60%. Hierzu wäre dann natürlich jeweils ein Script für die Ermittlung des SOC notwendig.
Hi Jual,
das Skrip läuft mittlerweile bei mir. Durch die Übergabe der Werte über http habe ich meine Variable fhem_url dahingehend geändert, dass ich einen neue Fhem Nutzer angelegt habe. Ist erstmal nur ein Workarround um zu testen:
fhem_url = 'http://username:password@localhost:8083/fhem'
Wegen den Daten die du ausliest ist die Webanwendung des EV-Chargers nicht sehr gelungen. Oben kannst du auch Werte des EM abfragen.
Ich habe jetzt über die Webkonsole folgende infos erhalten, die du in deinem Skript hinsichtlich neuer Werte ersetzen, bzw. ergänzen kannst:
Data = '[{"componentID":"Plant:1"}] --> Hier erhältst du die von dir beschriebenen Werte, meisst aus dem EM
Data = '[{"componentID":"IGULD:SELF"}] --> Hier erhältst du die Livedaten vom EVCharger
Dann kann man noch mit einer anderen URL den EM erreichen und die Gesamtwerte auslesen.
Data = '[{"componentID":"EM:0174-Seriennummer"}] ungefähr so.
Zitat von: Kamik am 05 Januar 2021, 22:18:47
Data = '[{"componentID":"IGULD:SELF"}] --> Hier erhältst du die Livedaten vom EVCharger
Danke für den Hinweis. Da hatte ich doch tatsächlich nicht mehr auf das Gerät geachtet, welches ich ausgewertet habe. IGULD:SELF ist in der Tat das richtige Gerät. Schau ich mir morgen nochmal an.
Übrigens muss das 'D' bei ComponentId ein kleines 'd' sein, sonst funktioniert der Aufruf nicht
Moin,
Ich habe gestern noch versucht das json mit dem Modul jsonexpand schneller in Readings zu Gießen. Habe es aber nicht ganz hinbekommen. Meine Vermutung ist, dass das Ergebnis in [ und nicht in { kommt. Ich habe gesehen dass du mit der Funktion json.expand und json.dump hin und her wandelst. Weißt du ob man das Ergebnis noch ohne [ ausgeben kann?
Zitat von: Kamik am 06 Januar 2021, 06:57:54
Ich habe gestern noch versucht das json mit dem Modul jsonexpand schneller in Readings zu Gießen. Habe es aber nicht ganz hinbekommen. Meine Vermutung ist, dass das Ergebnis in [ und nicht in { kommt. Ich habe gesehen dass du mit der Funktion json.expand und json.dump hin und her wandelst. Weißt du ob man das Ergebnis noch ohne [ ausgeben kann?
Wie gesagt, bin ich eher ein Laien-Programmierer und suche mir entsprechende Codeschnipsel zusammen ;-). Die eckige Klammer sagt aus meiner Sicht, dass hier ein Array mit gleichen Json-Elementen gibt. Ich denke, dass man das nicht einfach ersetzen kann. Einziger schneller Hinweis von mir wäre, dass man weiterhin die foreach-Schleife für das Array verwendet und dann die jeweiligen einzelnen Elemente mit jsonexpand bearbeitet. Ich habe mir jsonexpand aber auch noch nicht angeschaut.
Da die Rückgabe in meinem Python Script mittels Weblink nicht wirklich optimal ist und in der aktuellen Version Probleme mit dem csrf-Token verursacht, habe ich zunächst noch einen weiteren Vorschlag für die Rückgabe des Json-String. Mit dem Python-Aufruf os.system funktioniert das eigentlich sehr einfach.
Folgende Änderungen müssen dann in dem Script vorgenommen werden:
Am Anfang einfügen: import os
Dann den Zusammenbau von urlcmd den url-Aufruf am Ende des Scripts ersetzen (also request.post auskommentieren oder entfernen).
cmdurl = 'setreading '+fhem_device+' '+fhem_reading+' '+str(response)
response = response.replace('"','\\"')
os.system('perl /opt/fhem/fhem.pl 7072 "'+str(cmdurl)+'"')
Nachdem kamik ja korrekterweise erkannt hat, dass ich die Werte der Anlage "Plant:1" ermittelt habe und nicht die der Wallbox habe ich das Script nochmal angepasst und in meinem ersten Beitrag ausgetauscht. Damit passt natürlich auch die Umsetzung der Readings. Nachfolgend gibt es die korrigierte Version der entsprechenden Funktion (am besten, die alten Readings löschen oder wenn möglich das gesamte Dummy-Device nochmals anlegen):
#
# Funktion zur Konvertierung des EV Charger Status in einen Dummy
#
sub EVCH_Status()
{
# Zur Umwandlung in lesbare Readings und falls sich die Reihenfolge einmal ändern sollte
# Eigentlich sind wohl nur die ersten drei Werte von der Ladestation
# Die übrigen Werte kommen vom EnergyMeter
# zu jedem Wert wird auch ein Timestamp (UTC) übermittelt, den habe ich erst einmal weggelassen
my $readings = { "Measurement.ChaSess.WhIn" => "Energie_Ladevorgang", # in Wh
"Measurement.GridMs.A.phsA" => "Netzstrom_Phase_L1",
"Measurement.GridMs.A.phsB" => "Netzstrom_Phase_L2",
"Measurement.GridMs.A.phsC" => "Netzstrom_Phase_L3",
"Measurement.GridMs.Hz" => "Netzfrequenz",
"Measurement.GridMs.PhV.phsA" => "Netzspannung_Phase_L1",
"Measurement.GridMs.PhV.phsB" => "Netzspannung_Phase_L2",
"Measurement.GridMs.PhV.phsC" => "Netzspannung_Phase_L3",
"Measurement.GridMs.TotPF" => "Verschiebungsfaktor",
"Measurement.GridMs.TotVA" => "Scheinleistung",
"Measurement.GridMs.TotVAr" => "Blindleistung",
"Measurement.InOut.GI1" => "digitaler_Gruppeneingang",
"Measurement.Metering.GridMs.TotWIn" => "Leistung_Bezug", # in W
"Measurement.Metering.GridMs.TotWIn.ChaSta" => "Leistung_Ladestation", # in W
"Measurement.Metering.GridMs.TotWhIn" => "Zaehlerstand_Bezugszaehler", # in Wh
"Measurement.Metering.GridMs.TotWhIn.ChaSta" => "Zaehlerstand_Ladestation", #in Wh
"Measurement.Operation.EVeh.ChaStt" => "Status_Ladevorgang", # 200111 -> nicht verbunden
"Measurement.Operation.EVeh.Health" => "Status_verbundenes_Fahrzeug", # 307 -> "Ok"
"Measurement.Operation.Evt.Msg" => "Status_Meldung", # 302 -> "ok" ?
"Measurement.Operation.Health" => "Status_Zustand", # 307 -> "Ok"
"Measurement.Operation.WMaxLimSrc" => "Digitaler_Eingang", # eigentlich uninteressant
"Measurement.Wl.AcqStt" => "Status_WLAN_Scan",
"Measurement.Wl.ConnStt" => "Status_WLAN_Verbindung", # 1725 -> keine Verbindung
"Measurement.Wl.SigPwr" => "Signalstaerke_Netzwerk",
"Measurement.Wl.SoftAcsConnStt" => "Status_Soft_Access_Point", # 308 -> "Ein"
"Setpoint.PlantControl.Inverter.FstStop" => "Schnellabschaltung" # 1467 -> "Start"
};
# Abfrage des Readings, in dem das Script sein Ergebnis rein geschrieben hat
my $status = ReadingsVal("diKiaStatus", "WallboxAPI", "unbekannt");
my $json = decode_json( $status );
foreach my $item ( @$json )
{
fhem("setreading duWallbox ".$readings->{$item->{"channelId"}}." ".$item->{"values"}->[0]->{"value"});
#Log 3, "Wallbox JSON:".$item->{"channelId"}.' Reading:'.$readings->{$item->{"channelId"}}.' Wert:'.$item->{"values"}->[0]->{"value"};
}
}
Hi,
funktioniert soweit gut.
Ich habe jetzt nochmal etwas mit dem Stecker gespielt um zu gucken, welche werte die eigentlichen Stati zurück liefern
Status Ladevorgang 200111 --> nicht verbunden --> Dabei ist der Status_verbundenes_Fahrzeug auf 307 (ok)
Status Ladevorgang 200112 --> schlafend --> Fahrzeug ist verbunden. der Status_verbundenes_Fahrzeug bleibt bei ok
Status Ladevorgang 200113 --> Ladung aktiv --> Fahrzeug ist natürlich verbunden
Der Status_verbundes_Fahrzeug ist für mich aktuell nicht aussagekräftig. Auch in der Weboberfläche steht hier immer ok, auch wenn kein Fahrzeug verbunden ist. Spannend wird es vielleicht, wenn das Fahrzeug nicht mehr reagiert oder voll ist.
Ich habe versucht den Stecker einzustecken, so dass die Verriegelung nicht greift. Hier bekomme ich aber nur einen Fehler vom Auto. Die Ladestation sagt nicht verbunden.
wenn du die URL veränderst und nach baseurl + /api/v1/parameters/search/ suchst findest du unter diesem Link die Parameter, die man ändern kann.
Sehr schön, dass es auch bei dir läuft. Da wäre der erste Schritt geschafft. Die Parameter habe ich mir auch schonmal angeschaut. Mittlerweile habe ich meine Pläne nochmal ein wenig geändert. Nachdem ich nochmal eine ganze Weile mit HTTPMOD herum probiert habe und zu keiner Lösung gekommen bin, habe ich mich entschlossen, in die Modulprogrammierung einzusteigen. Ich habe mir jetzt mal die Einführungsdoku durchgelesen und bin gerade dabei aus einem bestehenden Modul ein erstes Gerüst zum TEsten zu bauen. Dazu habe ich mir in meinem Docker Container jetzt auch eine Test-Fhem-Installation angelegt. Wahrscheinlich werde ich aber erst am WE erste Ergebnisse liefern können. Ich denke, dass es mit einem Modul nachher wesentlich einfacher ist, die Werte zu setzen bzw. ein paar nette Zusatzfunktionen einzubauen.
Hi,
sag mal, ich habe irgendwie Probleme damit die Readings aus der Funktion in ein Filelog zu schreiben. Hast du das schon gemacht?
Ich bekomme den Json String in das Logfile, aber die einzelnen Readings nicht. Ich habe diese im Eventmonitor stehen, weil ich ein Event-on-Update .* eingetragen habe. Aber das FileLog will die Werte einfach nicht abgreifen...
2021-01-08 09:32:38 dummy EVCharger EVCharger: [{"channelId": "Measurement.ChaSess.WhIn", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-07T04:29:27.401Z"}]}, {"channelId": "Measurement.GridMs.A.phsA", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:34.841Z"}]}, {"channelId": "Measurement.GridMs.A.phsB", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:34.841Z"}]}, {"channelId": "Measurement.GridMs.A.phsC", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:34.841Z"}]}, {"channelId": "Measurement.GridMs.Hz", "componentId": "IGULD:SELF", "values": [{"value": 50.02, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.GridMs.PhV.phsA", "componentId": "IGULD:SELF", "values": [{"value": 227.516, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.GridMs.PhV.phsB", "componentId": "IGULD:SELF", "values": [{"value": 226.745, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.GridMs.PhV.phsC", "componentId": "IGULD:SELF", "values": [{"value": 226.51, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.GridMs.TotPF", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.GridMs.TotVA", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.GridMs.TotVAr", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:33.363Z"}]}, {"channelId": "Measurement.InOut.GI1", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2020-12-03T11:55:12.464Z"}]}, {"channelId": "Measurement.Metering.GridMs.TotWIn", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:34.841Z"}]}, {"channelId": "Measurement.Metering.GridMs.TotWIn.ChaSta", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2021-01-08T08:32:34.841Z"}]}, {"channelId": "Measurement.Metering.GridMs.TotWhIn", "componentId": "IGULD:SELF", "values": [{"value": 266190, "time": "2021-01-08T08:32:33.321Z"}]}, {"channelId": "Measurement.Metering.GridMs.TotWhIn.ChaSta", "componentId": "IGULD:SELF", "values": [{"value": 266190, "time": "2021-01-08T08:32:33.321Z"}]}, {"channelId": "Measurement.Operation.EVeh.ChaStt", "componentId": "IGULD:SELF", "values": [{"value": 200111, "time": "2021-01-08T08:32:34.406Z"}]}, {"channelId": "Measurement.Operation.EVeh.Health", "componentId": "IGULD:SELF", "values": [{"value": 307, "time": "2020-12-03T11:56:44.920Z"}]}, {"channelId": "Measurement.Operation.Evt.Msg", "componentId": "IGULD:SELF", "values": [{"value": 302, "time": "2021-01-07T04:29:27.489Z"}]}, {"channelId": "Measurement.Operation.Health", "componentId": "IGULD:SELF", "values": [{"value": 307, "time": "2021-01-07T04:29:27.489Z"}]}, {"channelId": "Measurement.Wl.AcqStt", "componentId": "IGULD:SELF", "values": [{"value": 3369, "time": "2020-12-03T11:55:24.623Z"}]}, {"channelId": "Measurement.Wl.ConnStt", "componentId": "IGULD:SELF", "values": [{"value": 303, "time": "2020-12-04T12:59:35.938Z"}]}, {"channelId": "Measurement.Wl.SigPwr", "componentId": "IGULD:SELF", "values": [{"value": 0, "time": "2020-12-04T12:59:35.938Z"}]}, {"channelId": "Measurement.Wl.SoftAcsConnStt", "componentId": "IGULD:SELF", "values": [{"value": 308, "time": "2020-12-03T11:55:24.646Z"}]}]
2021-01-08 09:32:38 dummy EVCharger Netzfrequenz: 50.02
2021-01-08 09:32:38 dummy EVCharger Netzspannung_Phase_L1: 227.516
2021-01-08 09:32:38 dummy EVCharger Netzspannung_Phase_L2: 226.745
2021-01-08 09:32:38 dummy EVCharger Netzspannung_Phase_L3: 226.51
wenn ich händisch das setreading in der Ausführungszeile eingebe funktioniert es... Die Schleife in deiner Funktion wird auch korrekt ausgegeben. Irgendwie stehe ich gerade auf dem Schlauch
Bevor ich hier lange suche. Schicke mir doch bitte mal die Raw definition deines DOIF für denAufruf und das Reading zum Anstoßen deiner Funktion.
Ich vermute, dass ich hier ein Problem haben könnte
Ich habe es jetzt lösen können.
Ich habe für die Readings und den JSon das selbe dummy Device verwendet. Setreading löst dann folglich kein neues Event aus, welches von Filelog aufgegriffen wird.
Ich habe für die readings nun ein eigenes Device verwendet. ähnlich wie du es auch machst.
Ich verzweifele gerade an der Möglichkeit, ein Modul zu erstellen. Das Grundgerüst hatte ich mir schon zusammen gebaut aber ich habe aktuell Probleme mit einer Zertifikatslösung, die ich nicht lösen kann. Beim Versuch auf die API-Adresse zuzugreifen gibt es immer einen HTTP 500 Fehler (Zertifikat konnte nicht verifiziert werden). Jetzt habe ich schon alles mögliche ausprobiert und bin mit meinem Latein am Ende. Auch das Ausschalten der Verifizierung oder die Ermittlung und Nutzung des Fingerprints habe ich auch schon versucht. Da ich in dem Thema aber eigentlich überhaupt keine Ahnung habe, komme ich nun nicht mehr weiter.
Um auszuschließen, dass es an meinen Installationen liegt habe ich mal ein kleines Testscript erstellt, welches versucht auf die API zuzugreifen. User und Passwort sind dabei erst einmal egal. Im Script muß nur die IP Adresse des EV Charger eingetragen werden. Dann sollten im Log entsprechende Meldungen erscheinen. Die Funktion myTest() einfach in die 99_myutils kopieren.
Diejenigen, die gerade auch damit herum spielen können das ja mal testen und Bescheid geben, welches Verhalten sie beobachten. Interessant ist, dass ich auf Python Ebene mit dem Ausschalten der Zertifizierungsprüfung erfolgreich war und innerhalb FHEM dies nicht funktioniert. Vielleicht mache ich ja auch noch etwas völlig falsch.
sub myTest()
{
my $dst = "192.168.X.XXX"; # IP Adresse vom Charger
my $cl = IO::Socket::SSL->new(
PeerAddr => $dst,
PeerPort => 443,
# certificate cannot be validated the normal way, so we need to
# disable validation this one time in the hope that there is
# currently no man in the middle attack
SSL_verify_mode => 0,
) or die "connect failed";
my $fp = $cl->get_fingerprint;
Log3 undef, 3, "fingerprint: $fp";
my $ua = LWP::UserAgent->new(ssl_opts => { SSL_fingerprint => $fp, SSL_verify_mode => 0});
my $header = ['Content-Type' => 'application/json; charset=UTF-8',
'Content-Length' => 47,
'Host' => $dst,
'Connection' => 'close',
'Accept' => 'application/json, text/plain, */*',
'Accept-Encoding' => 'gzip, deflate',
'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',
'Origin' => $dst,
'Sec-Fetch-Site' => 'same-origin',
'Sec-Fetch-Mode' => 'cors',
'Sec-Fetch-Dest' => 'empty',
'Referer' => "https://".$dst."/webui/login",
'Accept-Language' => 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7'
];
my $data = 'grant_type=password&username=test&password=test';
my $r = HTTP::Request->new('POST', "https://$dst/api/v1/token", $header, $data);
my $res = $ua->request($r);
Log3 undef, 3, "Antwort Code:".$res->code;
Log3 undef, 3, "Antwort Content:".$res->content;
}
Kleiner Zwischenstand mit einer ersten Entwarnung. Nachdem ich schon fast völlig verzweifelt war und das halbe Internet nach möglichen Lösungsansätzen durchsucht habe, gibt es eine suboptimale Zwischenlösung.
Nachdem ich festgestellt hatte, dass auch curl-Aufrufe kein Problem mit der Deaktivierung der Zertifikatsprüfung haben, habe ich damit ein wenig herum experimentiert. Und siehe da, damit funktioniert mein Modul tatsächlich.
Mittlerweile kann ich auf die Daten des EV Charger über mein Modul zugreifen. Im nächsten Schritt muss ich mich darum kümmern, die Readings anzulegen. Dann könnte ich wahrscheinlich kurzfristig eine erste Modulversion zum Testen bereit stellen, die im Prinzip die Funktion des Python Scripts abdeckt.
So, die allererste Version des Moduls für den SMA EV Charger steht grundsätzlich zum Test bereit. In der aktuellen Version werden allerdings nur die Livedaten der Wallbox ausgelesen und in Readings angezeigt. Wenn schon Bedarf besteht, kann ich das Modul gerne hier hochladen. Ansonsten würde ich mich jetzt darum kümmern, die Parameter zu ermitteln und im ersten Schritt anzuzeigen.
Darüber hinaus würde ich gerne eure Anforderungen berücksichtigen und hätte daher ein paar Fragen:
- Soll bei den Readings ein sprechender Wert angezeigt werden, statt der Codes, die ermittelt werden? (Übersetzung müsste dann in die Doku)
- Soll man definieren können, ob man nur die Livedaten sehen will oder auch die Parameter sowie deren Änderung?
- Gibt es Bedarf, auch die EnergyMeter Daten anzuzeigen (dafür gibt es ja eigentlich schon ein gut funktionierendes Modul)?
- Welche zusätzlichen Daten würdet ihr euch wünschen (Beispiel: Dauer letzer Ladevorgang / Leistung letzter Ladevorgang / ...?
- Was gibt es sonst noch für Anforderungen von eurer Seite?
Meine nächsten ToDos wären ansonsten:
- Parameter lesen und anzeigen
- Set Funktion für die änderbaren Parameter
- Zusätzliche berechnete Werte (z.B. letzte Ladevorgänge)
- Integration von einer SOC Abfrage (Funktion, die von jedem User definiert werden kann und vom Modul dann aufgerufen wird)[\li]
- Evtl. eine Möglichkeit, zur Definition von Schaltzeiten (wie wären denn eure Anforderungen diesbezüglich)
- Weitere Tests, warum es Probleme mit der Zertifikatsprüfung gibt, damit doch httputils genutzt werden kann
Ich bin gespannt auf euer Feedback ;-).
Hi Jual,
bezogen auf die Anzahl wie oft dein python Script heruntergeladen wurde denke ich sind wir erstmal noch alleine.
Vielen dank schonmal für die Arbeit! Ich würde das Modul gerne auch zum testen verwenden oder wenn du Feedback brauchst. Gerne hier zur Verfügung stellen
Zitat von: jual am 09 Januar 2021, 12:49:02
- Soll bei den Readings ein sprechender Wert angezeigt werden, statt der Codes, die ermittelt werden? (Übersetzung müsste dann in die Doku)
--> Werte fände ich besser. Dann muss man nicht selbst übersetzen
Zitat
- Soll man definieren können, ob man nur die Livedaten sehen will oder auch die Parameter sowie deren Änderung?
--> Fände ich nicht schlecht. Ich würde aber pauschal alle verwenden. Wenn es kein Problem hinsichtlich Timing oder Performance gibt würde ich erstmal alles anbieten.
Zitat
- Gibt es Bedarf, auch die EnergyMeter Daten anzuzeigen (dafür gibt es ja eigentlich schon ein gut funktionierendes Modul)?
--> Die sind denke ich schon gut aufgearbeitet im EM-Modul aufgehoben. Ich meine, dass das EM Modul auch mehr Daten liefert. Grundsätzlich ist es über den EVCharger ja nur durchgeschliffen. Werte direkt aus der Quelle halte ich für sinnvoller
Zitat
- Welche zusätzlichen Daten würdet ihr euch wünschen (Beispiel: Dauer letzer Ladevorgang / Leistung letzter Ladevorgang / ...?
--> Was ich nicht schlecht finden würde wäre die Anzahl der starts und Stopps der Ladung während das Auto eingestöpselt ist. Die aktuelle Energiemenge wird ja immer gezählt wenn das Auto eingestöpselt ist. Beim Ausstecken ist der Wert weg.
Die Anzahl der Starts bzw. Stopps könnte ggf. bei Fahrzeugen, die zum Einschlafen neigen helfen.
Zitat
- Was gibt es sonst noch für Anforderungen von eurer Seite?
--> Das Steuern der Werte wie in der App 1.) Ladedauer und 2.) Lademenge. Damit kann man manuelle Vorgänge im Prognostiziertem Laden starten. Im Zusammenhang mit dem neuen Prognosemodul von DS_Starter mit Sicherheit gut kombinierbar.[/list]
Hier ist mal mein DOIF (Achtung, hier ist noch eine Abfrage für den SOC meines KIA enthalten)
([+00:20] and [duKia:evBatteryPlugin] eq "2" and [duKia:evBatteryCharge] eq "True" )
({system("python3 ./mykia/mykia.py &")})
DOELSEIF ([06:00-20:00,+1:00] and [duKia:evBatteryCharge] eq "False")
({system("python3 ./mykia/mykia.py &")})
DOELSEIF ([$SELF:KiaAPI] =~ m/"returnCode": "OK"/)
({KiaStatusSetzen()})
## Wenn der Status der Wallbox "nicht verbunden" ist (307?) dann Abruf der Wallbox nur alle 15 Minuten
DOELSEIF ([+00:15] and [duWallbox:Status_Zustand] eq "307")
({system("python3 ./mykia/smaEVCharger.py &")})
## Wenn der Status der Wallbox "verbunden" ist (?) dann Abruf der Wallbox jede Minute
DOELSEIF ([+00:01] and [duWallbox:Zustand] eq "?")
({system("python3 ./mykia/smaEVCharger.py &")})
DOELSEIF ([$SELF:WallboxAPI])
({EVCH_Status()})
Übrigens bin ich bei dem Modul nun auch schon etwas weiter. Grundsätzlich werden die Livedaten und die Parameter (zunächst ein Ausschnitt) gelesen und ich kann die Werte ändern (allerdings werden sie noch nicht an die Wallbox gesendet).
Moin Männer,
das ist jetzt zwar OT, aber mich interessiert folgende Frage trotzdem:
Was war für Euch das Argument, den doch eher teuren EV Charger anstatt z.B. einer Heidelberg-Wallbox zu kaufen? Klar, eine Integration in die PV-Anlage ist toll, aber zumindest bei mir mit 8.5 kWp bei Ladeleistung 11-22kW auch eher nur theoretisch praktikabel, oder?
Bei mir steht im Januar das erste eAuto und im Juni ein Hybrid an, daher überlege ich gerade, was ich mir einbaue. Idealerweise benötige ich zwei Wallboxen...
Und eine weitere Frage, deren Antwort ich nirgends finde: Benötige ich für den EV Charger zwingend einen SHM2 oder ist der Betrieb auch mit einem SHM1 möglich?
Grüße!
Zitat von: assi05 am 10 Januar 2021, 10:19:15
Was war für Euch das Argument, den doch eher teuren EV Charger anstatt z.B. einer Heidelberg-Wallbox zu kaufen? Klar, eine Integration in die PV-Anlage ist toll, aber zumindest bei mir mit 8.5 kWp bei Ladeleistung 11-22kW auch eher nur theoretisch praktikabel, oder?
Und eine weitere Frage, deren Antwort ich nirgends finde: Benötige ich für den EV Charger zwingend einen SHM2 oder ist der Betrieb auch mit einem SHM1 möglich?
Bei mir fiel die Auswahl ursprünglich auf die OpenWB. Ein wesentlicher Grund war die Möglichkeit, zwischen 1- und 3-Phasen umschalten zu können. Diese Möglichkeit bieten aktuell nur ganz wenige Wallboxen und ist für das Überschußladen aus meiner Sicht aber zwingend notwendig. Die Solateure haben sich aber etwas schwer getan mit der Box, da sie meist auf spezielle Geräte eingespielt sind. Da wir eine SMA Anlage komplett neu installiert haben, kam dann der EV Charger genau recht. Außerdem konnte ich noch die tolle Förderung in NRW letztes Jahr nutzen (60% der Kosten + 500€ Bonus für gleichzeitige Solaranlage). Ich habe übrigens eine Ost/West-Lage mit teilweiser Verschattung im Osten. Im Winter ist das Laden natürlich nicht optimal. Einstellung ist aktuell, dass bei etwa 400 Watt Einspeisung der Charger beginnt. Er startet dann tatsächlich meist mit nur 6A. Für unser zweites E-Auto, welches nächste Woche hoffentlich zugelassen wird, habe ich geplant, den Ladeziegel zu verwenden, da das Auto länger vor Ort geparkt ist und es als reines Stadtauto geplant ist.
Der Charger ist meines Wissens auch mit dem Homemanage 1 nutzbar. Benötigt wird ein EnergyMeter, der im 2er ja nun direkt eingebaut ist. Weitere Infos findest du evtl. auch in diesem FOrum:
https://www.photovoltaikforum.com/thread/130156-sma-bringt-eigene-wallbox/?pageNo=1
Hi Jual,
steht dein Modul zum Testen schon zur Verfügung?
Gruß
Zitat von: Kamik am 12 Januar 2021, 20:49:57
Hi Jual,
steht dein Modul zum Testen schon zur Verfügung?
Gruß
Hatte eigentlich schon ein relativ weit gediehenes Modul fertig und wollte es nur noch ein wenig optimieren. Dabei habe ich mir wieder ein paar Bugs eingebaut. Ich denke, dass ich Freitag Abend oder spätestens am Wochenende die erste Version bereit stellen kann. Aktuell wollte ich noch testen, wie ich die Einstellungen für das Laden umsetzen bzw. wie die Box reagiert, wenn die Werte nicht zueinander passen. In der SMA App kann man ja z. B. keine Ladueparameter eingeben, wenn kein Auto verbunden ist.
Klingt gut. Keine Hektik.
Also ich wollte mal probieren die parameter über die Weboberfläche zu setzen. Hierzu ist glaube ich auch die unix Zeit notwendig.
Hast du schon mal den speichern Knopf untersucht? Vielleicht kannst du die Werte setzen und dann das Speichern triggern?
So, ich habe in meinem ersten Beitrag (Beitrag 2) das Modul zum Testen bereit gestellt.
Was funktioniert bisher:
- Lesen der Live Daten
- Lesen eines Ausschnitts der Parameter (sind viele uninteressante dabei, die ich aktuell weggelassen habe)
- Setzen der Werte zum Laden (hier wird geprüft, ob das Auto angeschlossen ist und ob Dauer und Energiemenge angegeben sind, bevor man auf "Laden mit Vorgabe" umschalten kann.
Bei mir funktioniert aktuell wohl alles aber wie immer es Software, die wahrscheinlich noch nicht 100% fehlerfrei ist. Die Doku ist auch noch nicht vollständig.
Im nächsten Schritt werde ich wohl tatsächlich die gewünschte Infos zur Anzahl der Ladevorgänge innerhalb eines Ladefensters einbinden. Die Freigabe weiterer Paramater, die über das Modul gesteuert werden können ist relativ einfach. Da ich bei einigen Parametern aber noch nicht sicher bin, welche Auswirkungen diese haben, werden diese noch nicht unterstützt. Man findet alle Werte in der Weboberfläche des Chargers und kann mir gerne Bescheid geben, welche Werte noch für eine Veränderung über FHEM verfügbar gemacht werden sollen.
Viel Spaß beim Testen!
Hi Jual,
ich habe das Modul problemlos eingebunden. Im Log habe ich einige Perl Fehler nach dem define:
[code]
2021.01.14 21:08:21 3: Wallbox - ########## SMAEVCharger get all data ##########
2021.01.14 21:08:22 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 936.
2021.01.14 21:08:22 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 190.
2021.01.14 21:08:27 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 748.
2021.01.14 21:08:27 3: eval: {SMAEVCharger_Done('Wallbox|1|bm9kZTBodHE4YTJqNWxjczAxdGZ1bzNzYWZ6aW1wNjExMC5ub2RlMHxleUpoYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNVEEyTlRRNU1EUXNJbk4xWWlJNklrWm9aVzBpTENKMWFXUWlPaUkzWXprd1kyVm1ZUzFrTUdWaExUUmhZakV0WWpSa1pDMHpaVGsyWW1RNU5qazJOV1VpTENKbGVIQWlPakUyTVRBMk5UZzFNRFI5LlNhUExKLXJYVVdHWDBxUGVET3hOYXV6dWlWWldfMElpSlpRUFJScm1JQmd8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTVRBMk5UUTVNRFFzSW5OMVlpSTZJa1pvWlcwaUxDSjFhV1FpT2lJM1l6a3dZMlZtWVMxa01HVmhMVFJoWWpFdFlqUmtaQzB6WlRrMlltUTVOamsyTldVaUxDSmxlSEFpT2pFMk1UQTNOREV6TURRc0luUjVjR1VpT2lKeVpXWnlaWE5vSW4wLnl4UGpIWkpqLTJWZUEtb0FfbFhId2RtWlFCbXFpTW5qYzV2aGlGNVA4aEl8MTYxMDY1ODUwNC4yNTA0OQ==|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQxMzowNTowMi43OTRaIiwidmFsdWUiOjM3NTV9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6NTB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MjIwLjY3NH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5QaFYucGhzQiIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjoyMjUuNDA5fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlBoVi5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zNjdaIiwidmFsdWUiOjIyMy4xMDh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToxMi40NjRaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NDlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjQuODQ5WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjMyNVoiLCJ2YWx1ZSI6MjcwNzI3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zMjVaIiwidmFsdWUiOjI3MDcyN31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjUuNDExWiIsInZhbHVlIjoyMDAxMTJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU2OjQ0LjkyMFoiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDExOjAzOjEyLjE5N1oiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMTE6MDM6MTIuMTk4WiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDNUMTE6NTQ6NTAuNjE2WiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQWNxU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjNaIiwidmFsdWUiOjMzNjl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5Db25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOjMwM31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNpZ1B3ciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDRUMTI6NTk6MzUuOTM4WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuU29mdEFjc0Nvbm5TdHQiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjY0NloiLCJ2YWx1ZSI6MzA4fV19LHsiY2hhbm5lbElkIjoiU2V0cG9pbnQuUGxhbnRDb250cm9sLkludmVydGVyLkZzdFN0b3AiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTI3VDIyOjMzOjU2Ljc0N1oiLCJ2YWx1ZSI6MTQ2N31dfV18W3siY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlN3UmV2VHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuNDkwWiIsInZhbHVlIjoiU0EtMDEuMDIuMTEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuQ3J5IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjMiLCIzMzI0IiwiMzM5OCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MjQuNDg0WiIsInZhbHVlIjoiMzM5OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLkh3UmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODEyWiIsInZhbHVlIjoiUjIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5JZ21wUXJ5VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzE3NDQsIm1pbiI6MTEsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTFaIiwidmFsdWUiOiIxMjUifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjk0ODQiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MVoiLCJ2YWx1ZSI6Ijk0ODQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTG9jYXRpb24iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU3OjQ4LjUwM1oiLCJ2YWx1ZSI6IkVWLUNoYXJnZXIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TdXN5SWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI0MjQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb1dQUyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIxIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC43MjFaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5BTWluQ2hhIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzIsIm1pbiI6Niwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5PdXRQaHMiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzI2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlBsYW4uRW4iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4MFoiLCJ2YWx1ZSI6IjQuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE4LjkwNloiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTMuNjAyWiIsInZhbHVlIjoiMS4xLjIyLlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiNTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM3NVoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC40ODJaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjEzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTcuMjgwWiIsInZhbHVlIjoiMzAxMDM2MDc2NiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MFoiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTA1WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjEzLjQ0NFoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNS43ODFaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTAzWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzc1WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE5IiwiNDcyMCIsIjQ3MTgiLCI0NzIxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0xNFQxMTowMzoxMi4wNjVaIiwidmFsdWUiOiI0NzE5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVR4IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMyIsIjQ0NzgiLCI0NDc5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTBaIiwidmFsdWUiOiI0NDc5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODE0WiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxHd0lwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTkyLjE2OC4xNzguMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuVXNlRW5lcmd5TWV0ZXIiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TZXJOdW0iLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi45NTNaIiwidmFsdWUiOiIzMDEwMTc2MzI0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5QbGFuLlN0b3BUbSIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMDk6MTI6MTIuNTg0WiIsInZhbHVlIjoiMTYxMDYzNzA2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjQyLjQ1OFoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4NFoiLCJ2YWx1ZSI6IjEuNC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjQ3OVoiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjQ2M1oiLCJ2YWx1ZSI6IjAwMDAwMDEwMTQ0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOiI0ODpFQjo2MjpDMzowMDo1MiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4OVoiLCJ2YWx1ZSI6IjM1OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlVwZC5BdmFsQ2hrSXN0bCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDIiLCIxMTQ2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi42MzZaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuVmVuZG9yIiwiZWRpdGFibGUiOmZhbHNlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NjEiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1LjgxNVoiLCJ2YWx1ZSI6IjQ2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLklzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU5OjMxLjI1NloiLCJ2YWx1ZSI6IjExMzAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNzVaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5TdHBXaGVuRmwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMzAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNzVaIiwidmFsdWUiOiIxNzIuMjIuMC4zIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5TdHBXaGVuRmxUbSIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjE0NDAsIm1pbiI6NSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjE1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU29mdEFjc0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjYyNloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb0FjcSIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzQyIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjRaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLk1pblN3VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6NjAwLCJtaW4iOjAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNy4yODFaIiwidmFsdWUiOiIwMDoxNTpCQjowMjpDQTowNCJ9XX1d')}
2021.01.14 21:08:27 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 734.
2021.01.14 21:08:27 3: eval: {SMAEVCharger_Done('Wallbox|1|bm9kZTBodHE4YTJqNWxjczAxdGZ1bzNzYWZ6aW1wNjExMC5ub2RlMHxleUpoYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNVEEyTlRRNU1EUXNJbk4xWWlJNklrWm9aVzBpTENKMWFXUWlPaUkzWXprd1kyVm1ZUzFrTUdWaExUUmhZakV0WWpSa1pDMHpaVGsyWW1RNU5qazJOV1VpTENKbGVIQWlPakUyTVRBMk5UZzFNRFI5LlNhUExKLXJYVVdHWDBxUGVET3hOYXV6dWlWWldfMElpSlpRUFJScm1JQmd8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTVRBMk5UUTVNRFFzSW5OMVlpSTZJa1pvWlcwaUxDSjFhV1FpT2lJM1l6a3dZMlZtWVMxa01HVmhMVFJoWWpFdFlqUmtaQzB6WlRrMlltUTVOamsyTldVaUxDSmxlSEFpT2pFMk1UQTNOREV6TURRc0luUjVjR1VpT2lKeVpXWnlaWE5vSW4wLnl4UGpIWkpqLTJWZUEtb0FfbFhId2RtWlFCbXFpTW5qYzV2aGlGNVA4aEl8MTYxMDY1ODUwNC4yNTA0OQ==|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQxMzowNTowMi43OTRaIiwidmFsdWUiOjM3NTV9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6NTB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MjIwLjY3NH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5QaFYucGhzQiIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjoyMjUuNDA5fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlBoVi5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zNjdaIiwidmFsdWUiOjIyMy4xMDh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToxMi40NjRaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NDlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjQuODQ5WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjMyNVoiLCJ2YWx1ZSI6MjcwNzI3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zMjVaIiwidmFsdWUiOjI3MDcyN31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjUuNDExWiIsInZhbHVlIjoyMDAxMTJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU2OjQ0LjkyMFoiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDExOjAzOjEyLjE5N1oiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMTE6MDM6MTIuMTk4WiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDNUMTE6NTQ6NTAuNjE2WiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQWNxU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjNaIiwidmFsdWUiOjMzNjl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5Db25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOjMwM31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNpZ1B3ciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDRUMTI6NTk6MzUuOTM4WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuU29mdEFjc0Nvbm5TdHQiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjY0NloiLCJ2YWx1ZSI6MzA4fV19LHsiY2hhbm5lbElkIjoiU2V0cG9pbnQuUGxhbnRDb250cm9sLkludmVydGVyLkZzdFN0b3AiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTI3VDIyOjMzOjU2Ljc0N1oiLCJ2YWx1ZSI6MTQ2N31dfV18W3siY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlN3UmV2VHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuNDkwWiIsInZhbHVlIjoiU0EtMDEuMDIuMTEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuQ3J5IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjMiLCIzMzI0IiwiMzM5OCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MjQuNDg0WiIsInZhbHVlIjoiMzM5OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLkh3UmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODEyWiIsInZhbHVlIjoiUjIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5JZ21wUXJ5VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzE3NDQsIm1pbiI6MTEsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTFaIiwidmFsdWUiOiIxMjUifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjk0ODQiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MVoiLCJ2YWx1ZSI6Ijk0ODQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTG9jYXRpb24iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU3OjQ4LjUwM1oiLCJ2YWx1ZSI6IkVWLUNoYXJnZXIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TdXN5SWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI0MjQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb1dQUyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIxIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC43MjFaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5BTWluQ2hhIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzIsIm1pbiI6Niwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5PdXRQaHMiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzI2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlBsYW4uRW4iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4MFoiLCJ2YWx1ZSI6IjQuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE4LjkwNloiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTMuNjAyWiIsInZhbHVlIjoiMS4xLjIyLlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiNTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM3NVoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC40ODJaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjEzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTcuMjgwWiIsInZhbHVlIjoiMzAxMDM2MDc2NiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MFoiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTA1WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjEzLjQ0NFoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNS43ODFaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTAzWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzc1WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE5IiwiNDcyMCIsIjQ3MTgiLCI0NzIxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0xNFQxMTowMzoxMi4wNjVaIiwidmFsdWUiOiI0NzE5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVR4IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMyIsIjQ0NzgiLCI0NDc5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTBaIiwidmFsdWUiOiI0NDc5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODE0WiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxHd0lwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTkyLjE2OC4xNzguMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuVXNlRW5lcmd5TWV0ZXIiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TZXJOdW0iLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi45NTNaIiwidmFsdWUiOiIzMDEwMTc2MzI0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5QbGFuLlN0b3BUbSIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMDk6MTI6MTIuNTg0WiIsInZhbHVlIjoiMTYxMDYzNzA2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjQyLjQ1OFoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4NFoiLCJ2YWx1ZSI6IjEuNC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjQ3OVoiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjQ2M1oiLCJ2YWx1ZSI6IjAwMDAwMDEwMTQ0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOiI0ODpFQjo2MjpDMzowMDo1MiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4OVoiLCJ2YWx1ZSI6IjM1OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlVwZC5BdmFsQ2hrSXN0bCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDIiLCIxMTQ2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi42MzZaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuVmVuZG9yIiwiZWRpdGFibGUiOmZhbHNlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NjEiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1LjgxNVoiLCJ2YWx1ZSI6IjQ2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLklzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU5OjMxLjI1NloiLCJ2YWx1ZSI6IjExMzAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNzVaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5TdHBXaGVuRmwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMzAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNzVaIiwidmFsdWUiOiIxNzIuMjIuMC4zIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5TdHBXaGVuRmxUbSIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjE0NDAsIm1pbiI6NSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjE1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU29mdEFjc0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjYyNloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb0FjcSIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzQyIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjRaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLk1pblN3VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6NjAwLCJtaW4iOjAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNy4yODFaIiwidmFsdWUiOiIwMDoxNTpCQjowMjpDQTowNCJ9XX1d')}
2021.01.14 21:08:27 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 725.
2021.01.14 21:08:27 3: eval: {SMAEVCharger_Done('Wallbox|1|bm9kZTBodHE4YTJqNWxjczAxdGZ1bzNzYWZ6aW1wNjExMC5ub2RlMHxleUpoYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNVEEyTlRRNU1EUXNJbk4xWWlJNklrWm9aVzBpTENKMWFXUWlPaUkzWXprd1kyVm1ZUzFrTUdWaExUUmhZakV0WWpSa1pDMHpaVGsyWW1RNU5qazJOV1VpTENKbGVIQWlPakUyTVRBMk5UZzFNRFI5LlNhUExKLXJYVVdHWDBxUGVET3hOYXV6dWlWWldfMElpSlpRUFJScm1JQmd8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTVRBMk5UUTVNRFFzSW5OMVlpSTZJa1pvWlcwaUxDSjFhV1FpT2lJM1l6a3dZMlZtWVMxa01HVmhMVFJoWWpFdFlqUmtaQzB6WlRrMlltUTVOamsyTldVaUxDSmxlSEFpT2pFMk1UQTNOREV6TURRc0luUjVjR1VpT2lKeVpXWnlaWE5vSW4wLnl4UGpIWkpqLTJWZUEtb0FfbFhId2RtWlFCbXFpTW5qYzV2aGlGNVA4aEl8MTYxMDY1ODUwNC4yNTA0OQ==|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQxMzowNTowMi43OTRaIiwidmFsdWUiOjM3NTV9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6NTB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MjIwLjY3NH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5QaFYucGhzQiIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjoyMjUuNDA5fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlBoVi5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zNjdaIiwidmFsdWUiOjIyMy4xMDh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToxMi40NjRaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NDlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjQuODQ5WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjMyNVoiLCJ2YWx1ZSI6MjcwNzI3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zMjVaIiwidmFsdWUiOjI3MDcyN31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjUuNDExWiIsInZhbHVlIjoyMDAxMTJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU2OjQ0LjkyMFoiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDExOjAzOjEyLjE5N1oiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMTE6MDM6MTIuMTk4WiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDNUMTE6NTQ6NTAuNjE2WiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQWNxU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjNaIiwidmFsdWUiOjMzNjl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5Db25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOjMwM31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNpZ1B3ciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDRUMTI6NTk6MzUuOTM4WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuU29mdEFjc0Nvbm5TdHQiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjY0NloiLCJ2YWx1ZSI6MzA4fV19LHsiY2hhbm5lbElkIjoiU2V0cG9pbnQuUGxhbnRDb250cm9sLkludmVydGVyLkZzdFN0b3AiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTI3VDIyOjMzOjU2Ljc0N1oiLCJ2YWx1ZSI6MTQ2N31dfV18W3siY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlN3UmV2VHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuNDkwWiIsInZhbHVlIjoiU0EtMDEuMDIuMTEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuQ3J5IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjMiLCIzMzI0IiwiMzM5OCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MjQuNDg0WiIsInZhbHVlIjoiMzM5OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLkh3UmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODEyWiIsInZhbHVlIjoiUjIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5JZ21wUXJ5VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzE3NDQsIm1pbiI6MTEsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTFaIiwidmFsdWUiOiIxMjUifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjk0ODQiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MVoiLCJ2YWx1ZSI6Ijk0ODQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTG9jYXRpb24iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU3OjQ4LjUwM1oiLCJ2YWx1ZSI6IkVWLUNoYXJnZXIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TdXN5SWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI0MjQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb1dQUyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIxIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC43MjFaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5BTWluQ2hhIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzIsIm1pbiI6Niwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5PdXRQaHMiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzI2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlBsYW4uRW4iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4MFoiLCJ2YWx1ZSI6IjQuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE4LjkwNloiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTMuNjAyWiIsInZhbHVlIjoiMS4xLjIyLlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiNTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM3NVoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC40ODJaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjEzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTcuMjgwWiIsInZhbHVlIjoiMzAxMDM2MDc2NiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MFoiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTA1WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjEzLjQ0NFoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNS43ODFaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTAzWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzc1WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE5IiwiNDcyMCIsIjQ3MTgiLCI0NzIxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0xNFQxMTowMzoxMi4wNjVaIiwidmFsdWUiOiI0NzE5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVR4IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMyIsIjQ0NzgiLCI0NDc5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTBaIiwidmFsdWUiOiI0NDc5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODE0WiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxHd0lwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTkyLjE2OC4xNzguMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuVXNlRW5lcmd5TWV0ZXIiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TZXJOdW0iLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi45NTNaIiwidmFsdWUiOiIzMDEwMTc2MzI0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5QbGFuLlN0b3BUbSIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMDk6MTI6MTIuNTg0WiIsInZhbHVlIjoiMTYxMDYzNzA2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjQyLjQ1OFoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4NFoiLCJ2YWx1ZSI6IjEuNC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjQ3OVoiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjQ2M1oiLCJ2YWx1ZSI6IjAwMDAwMDEwMTQ0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOiI0ODpFQjo2MjpDMzowMDo1MiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4OVoiLCJ2YWx1ZSI6IjM1OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlVwZC5BdmFsQ2hrSXN0bCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDIiLCIxMTQ2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi42MzZaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuVmVuZG9yIiwiZWRpdGFibGUiOmZhbHNlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NjEiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1LjgxNVoiLCJ2YWx1ZSI6IjQ2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLklzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU5OjMxLjI1NloiLCJ2YWx1ZSI6IjExMzAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNzVaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5TdHBXaGVuRmwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMzAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNzVaIiwidmFsdWUiOiIxNzIuMjIuMC4zIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5TdHBXaGVuRmxUbSIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjE0NDAsIm1pbiI6NSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjE1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU29mdEFjc0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjYyNloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb0FjcSIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzQyIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjRaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLk1pblN3VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6NjAwLCJtaW4iOjAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNy4yODFaIiwidmFsdWUiOiIwMDoxNTpCQjowMjpDQTowNCJ9XX1d')}
2021.01.14 21:08:27 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 726.
2021.01.14 21:08:27 3: eval: {SMAEVCharger_Done('Wallbox|1|bm9kZTBodHE4YTJqNWxjczAxdGZ1bzNzYWZ6aW1wNjExMC5ub2RlMHxleUpoYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNVEEyTlRRNU1EUXNJbk4xWWlJNklrWm9aVzBpTENKMWFXUWlPaUkzWXprd1kyVm1ZUzFrTUdWaExUUmhZakV0WWpSa1pDMHpaVGsyWW1RNU5qazJOV1VpTENKbGVIQWlPakUyTVRBMk5UZzFNRFI5LlNhUExKLXJYVVdHWDBxUGVET3hOYXV6dWlWWldfMElpSlpRUFJScm1JQmd8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTVRBMk5UUTVNRFFzSW5OMVlpSTZJa1pvWlcwaUxDSjFhV1FpT2lJM1l6a3dZMlZtWVMxa01HVmhMVFJoWWpFdFlqUmtaQzB6WlRrMlltUTVOamsyTldVaUxDSmxlSEFpT2pFMk1UQTNOREV6TURRc0luUjVjR1VpT2lKeVpXWnlaWE5vSW4wLnl4UGpIWkpqLTJWZUEtb0FfbFhId2RtWlFCbXFpTW5qYzV2aGlGNVA4aEl8MTYxMDY1ODUwNC4yNTA0OQ==|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQxMzowNTowMi43OTRaIiwidmFsdWUiOjM3NTV9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NTBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6NTB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MjIwLjY3NH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5QaFYucGhzQiIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjoyMjUuNDA5fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlBoVi5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zNjdaIiwidmFsdWUiOjIyMy4xMDh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjM2N1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuMzY3WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToxMi40NjRaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyNC44NDlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjQuODQ5WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDIwOjA4OjIzLjMyNVoiLCJ2YWx1ZSI6MjcwNzI3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wMS0xNFQyMDowODoyMy4zMjVaIiwidmFsdWUiOjI3MDcyN31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMjA6MDg6MjUuNDExWiIsInZhbHVlIjoyMDAxMTJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU2OjQ0LjkyMFoiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTAxLTE0VDExOjAzOjEyLjE5N1oiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDEtMTRUMTE6MDM6MTIuMTk4WiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDNUMTE6NTQ6NTAuNjE2WiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQWNxU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wM1QxMTo1NToyNC42MjNaIiwidmFsdWUiOjMzNjl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5Db25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMC0xMi0wNFQxMjo1OTozNS45MzhaIiwidmFsdWUiOjMwM31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNpZ1B3ciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjAtMTItMDRUMTI6NTk6MzUuOTM4WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuU29mdEFjc0Nvbm5TdHQiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTAzVDExOjU1OjI0LjY0NloiLCJ2YWx1ZSI6MzA4fV19LHsiY2hhbm5lbElkIjoiU2V0cG9pbnQuUGxhbnRDb250cm9sLkludmVydGVyLkZzdFN0b3AiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIwLTEyLTI3VDIyOjMzOjU2Ljc0N1oiLCJ2YWx1ZSI6MTQ2N31dfV18W3siY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlN3UmV2VHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMjA6MDg6MjMuNDkwWiIsInZhbHVlIjoiU0EtMDEuMDIuMTEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuQ3J5IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjMiLCIzMzI0IiwiMzM5OCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MjQuNDg0WiIsInZhbHVlIjoiMzM5OCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLkh3UmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODEyWiIsInZhbHVlIjoiUjIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5JZ21wUXJ5VG1zIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzE3NDQsIm1pbiI6MTEsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTFaIiwidmFsdWUiOiIxMjUifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjk0ODQiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MVoiLCJ2YWx1ZSI6Ijk0ODQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTG9jYXRpb24iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTA0VDEyOjU3OjQ4LjUwM1oiLCJ2YWx1ZSI6IkVWLUNoYXJnZXIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TdXN5SWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiI0MjQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Eb1dQUyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIxIiwiMzAyIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC43MjFaIiwidmFsdWUiOiIzMDIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsRG5zU3J2SXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5BTWluQ2hhIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MzIsIm1pbiI6Niwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5PdXRQaHMiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzI2Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0yN1QyMjozMzo1NC4zNjZaIiwidmFsdWUiOiIzMjYifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlBsYW4uRW4iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTE0VDA5OjEyOjEyLjU4MFoiLCJ2YWx1ZSI6IjQuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE4LjkwNloiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTMuNjAyWiIsInZhbHVlIjoiMS4xLjIyLlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiNTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM3NVoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToyNC40ODJaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjEzMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0wOFQxNTozMjozOS4zNjBaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMjdUMjI6MzM6NTQuMzY2WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTcuMjgwWiIsInZhbHVlIjoiMzAxMDM2MDc2NiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjE1Ljc4MFoiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTA1WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTAzVDExOjU1OjEzLjQ0NFoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxNS43ODFaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTguOTAzWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzc1WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE5IiwiNDcyMCIsIjQ3MTgiLCI0NzIxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wMS0xNFQxMTowMzoxMi4wNjVaIiwidmFsdWUiOiI0NzE5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVR4IiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMyIsIjQ0NzgiLCI0NDc5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi4yOTBaIiwidmFsdWUiOiI0NDc5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjAtMTItMDNUMTE6NTU6MTUuODE0WiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxHd0lwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMDhUMTU6MzI6MzkuMzYwWiIsInZhbHVlIjoiMTkyLjE2OC4xNzguMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTAxLTA4VDE1OjMyOjM5LjM1OVoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuVXNlRW5lcmd5TWV0ZXIiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIwLTEyLTI3VDIyOjMzOjU0LjM2NloiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5TZXJOdW0iLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMC0xMi0wM1QxMTo1NToxMi45NTNaIiwidmFsdWUiOiIzMDEwMTc2MzI0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5QbGFuLlN0b3BUbSIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDEtMTRUMDk6MTI6MTIuNTg0WiIsInZhbHVlIjoiMTYxMDYzNzA2MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYm
Ja, an den Fehlern arbeite ich noch, sind aber alle unkritisch und auch nur Warnungen. Hier sollte es eigentlich keine Probleme geben.
Meine Antwort war leider nicht vollständig...
Also das Attribut Interval funktioniert.
Das du Blocking Call eingebaut hast gefällt mir.
Das Setzen der Parameter für das Laden mit Vorgabe funktioniert auch.
Ich habe hier erst die Menge eingegeben und dann die Zeit. Hier musste ich nochmal nachsehen, weil in der App die Uhrzeit steht.
Also wenn man im Modul 02:00 eingibt sind es in zwei Stunden Fertig. In der App wird dann 23:54 angezeigt.
Das Laden wurde dann auch direkt gestartet ohne noch die Betriebsart ändern zu müssen.
Auch das setzen der Betriebsart zurück auf optimiertes Laden hat der Charger angenommen, runtergeregelt und abgeschaltet.
Und das allerbeste... Dein Modul mit Fhem ist bedeutend schneller als die Energy App... :-D
Also für die erste Version kann ich nur sagen, TOP!
Was man ggf. noch machen kann ist, dass der User verschlüsselt in Fhemweb angezeigt wird. Ich schaue mal ob ich finde womit man das machen kann. Z.B. im Harmony, oder Netatmo Modul.
Gruß Kamik
Weißt du, wie ich deinen ersten Beitrag im Thread nach ganz oben schieben kann?
Zitat von: Kamik am 14 Januar 2021, 22:56:44
Was man ggf. noch machen kann ist, dass der User verschlüsselt in Fhemweb angezeigt wird. Ich schaue mal ob ich finde womit man das machen kann. Z.B. im Harmony, oder Netatmo Modul.
Ja, die Verschlüsselung von User und Passwort wollte ich mir auch noch irgendwo abschauen und evtl. auch noch ein Funktion zum Ändern einbauen. Dann könnte man theoretisch beim Define auch ohne diese Angaben auskommen und muss sie dann entsprechend eintragen. Ich meine, dass es hier auch ähnliche Module gibt, die so arbeiten.
Bezüglich der Verschiebung von Beiträgen bin ich überfragt. Ich hatte auch schon überlegt, ob es ggf. Sinn macht einen neuen Beitrag "Neues Modul: ..." zu erstellen und die Beiträge miteinander zu verlinken.
Die Erkenntnis, dass die Ladung bereits beginnt, wenn man Dauer und Menge angibt, ist mir noch gar nicht aufgefallen. Springt dann der Lademodus auch um, wird also intern vom Charger gesetzt?
Ansonsten hatte ich ja ein paar Ideen für eine automatisierte Ladesteuerung nach dem Motto täglich bis X Uhr Menge Y laden oder weitere zeit- und SOC-gesteuerte Funktionen. Hier bin ich noch nicht sicher, ob man das wirklich alles ins Modul packen soll oder ob man es dem Benutzer überlässt - evtl. mit einem vordefinierten Template - eigene DOIFs zu schreiben.
Bei der Angabe zur Ladedauer bin ich auch noch hin- und her gerissen. Ich habe jetzt erst einmal den einfachsten Weg gewählt, in dem man einfach die Dauer angibt. Es besteht aber auch die Möglichkeit, direkt eine Zeit einzugeben. Dann wird die Dauer automatisch berechnet. Hier sehe ich nur das Problem, wie man diese als Benutzer am besten eingibt. Ein integriertes Widget, wie für Time gibt es leider nicht. Ich habe aber im Forum ein etwas komplexeres gefunden und müsste mal schauen, wie man das evtl. integrieren kann.
Nachdem ich gerade dabei war, meine Tablet-Oberfläche hinsichtlich der Steuerung der Wallbox anzupassen und dabei von meiner Frau den "Hinweis" bekam, was sie denn nun schon wieder neu ist, habe ich mir mal eine kleine Automatik zur Ladesteuerung überlegt und diese zunächst mit einem DOIF und einer kleinen Funktion umgesetzt.
Mit der automatischen Steuerung sollte es möglich sein, eine tägliche Strommenge bis zur gewünschten Abfahrtzeit zu laden. Hierzu habe ich für mich auch die Möglichkeit eingebaut, dass der SOC des Autos mit heran gezogen wird. Wer den aktuellen Ladestand des E-Autos nicht in FHEM integriert hat, kann noch eine andere Lösung wählen, die weiter unten als Anpassung kurz darstelle.
Die Idee beruht auf einer Ladestrategie, die wie folgt aussieht: "Wenn das E-Auto beim Anstecken der Wallbox eine definiert Untergrenze beim Ladestand erreicht hat, dann lade das Auto bis zur nächsten Abfahrtzeit mit einer Lademenge, die zu einer definierten Obergrenze führt".
Die Idee beruht darauf, dass meine Frau beispielsweise möglichst immer mindestens 30% Ladestand haben möchte. In diesem Fall soll das Auto dann beispielsweise auf 80% geladen werden und dies soll spätestens zur nächsten üblichen Abfahrzeit passieren. Mit dem DOIF definiert man nun die täglichen Abfahrzeiten (00:00 heisst: an dem Tag keine Abfahrzeit). Man setzt die jeweiligen Parameter und schon wird automatisch die entsprechende Ladung gesteuert und man muß nur noch eingreifen, wenn der Automatismus nicht passt.
Die Funktion ist noch nicht umfangreich getestet worden, sollte aber eigentlich keine gravierenden Mängel haben.
Das DOIF sieht wie folgt aus (myWallbox ist meine Wallbox und duKia ist ein Dummy, der meinen SOC enthält):
define diWallboxAutomatik DOIF ## Schaltzeiten werden geschaltet, wenn Ladung_Aktiv == on - damit kann also die gesamte Automatik deaktiviert werden
## Für jeden Tag muß eine Abfahrtzeit eingetragen werden (ToDo: Feiertage berücksichtigen?)
## Wenn für einen Tag keine Abfahrzeit definiert werden soll - also keine Zielzeit für eine Ladung definiert wird - dann die Zeit 00:00 eintragen
## Sobald der ermittelte SOC aus duKia unterhalb von SOC_Untergrenze liegt, wird ein Befehl an die Wallbox gesendet
## Die zu ladende Energie wird aus der Differenz von SOC_Untergrenze und SOC_Obergrenze ermittelt und mit MAX_Kapazitaet und dem Aufschlag für den Ladeverlust berechnet
## Lademenge = (SOC_Obergrenze - SOC_Untergrenze) / 100 * MAX_Kapazitaet * (100+Ladeverlust)/100
([?$SELF:Ladung_Aktiv, "off"] eq "on"
and [myWallbox:Status_Ladevorgang] eq "verbunden"
and ([myWallbox:Param_Betriebsart_Ladevorgang] eq "Optimiertes_Laden" or [myWallbox:Param_Betriebsart_Ladevorgang] eq "Ladestopp")
and [duKia:evBatterySoc] <= [$SELF:SOC_Untergrenze])
({WallboxAutomatik("$SELF","myWallbox")})
Dann noch das readingList für die notwendigen Readings
attr diWallboxAutomatik readingList Ladung_Aktiv Reset Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag SOC_Untergrenze SOC_Obergrenze Max_Kapazitaet Ladeverlust
Und noch ein User Reading, welches die Lademenge berechnet:
attr diWallboxAutomatik userReadings Lademenge {ceil((ReadingsVal("diKiaLadung","SOC_Obergrenze", "80") - ReadingsVal("duKia","evBatterySoc", "20"))
* ReadingsVal("diKiaLadung","Max_Kapazitaet", "64") / 100
* (1 + ReadingsVal("diKiaLadung","Ladeverlust", "10") / 100))}
Die nachfolgende Funktion muss dann in 99_myutils
# setzt eine Ladezeit und eine Lademenge zur Ladung mit der SMA Wallbox
# bei den Abfahrzeiten in den Wochentagen wird 00:00 als besondere Zeit für "an diesem Tag keine Abfahrzeit" definiert
#
# Übergabeparameter:
# 1: Device-Name des DOIF in dem die Zeiten definiert sind
# 2: Device-Name der Wallbox
#
# Im DOIF-Device notwendige Readings
# Ladeverlust
# SOC_Obergrenze
# SOC_Untergrenze
# Max_Kapazitaet
# Namen für jeden Wochentag (Montag, Dienstag,...)
#
sub WallboxAutomatik($$)
{
my ($Timer, $Wallbox) = @_;
my @wochentage = ("Sonntag","Montag", "Dienstag", "Mittwoch", "Donnerstag","Freitag","Samstag");
my ($sec,$min,$hour,$mday,$mon,$year,$heute,$yday,$isdst) = localtime();
my $ladedauer = 0;
my $lademenge = ReadingsVal("$Timer","Lademenge", "0");
# nächste Abfahrzeit ermitteln, beginnend beim aktuellen Wochentag
for ( my $wtag = $heute; $wtag <= 13 and $ladedauer <= 0 and $lademenge > 0; $wtag++ )
{
my $akttag = $wtag > 6 ? $wtag - 7 : $wtag;
my $uhrzeit = ReadingsVal("$Timer",$wochentage[$akttag], "00:00");
my ($stunde, $minute) = split(":", $uhrzeit);
if ($uhrzeit ne "00:00")
{
# ladedauer ist heute + anzahltage in zukunft * 24 - differenz aus abfahrt und aktueller Uhrzeit
$ladedauer = (86400 * ($wtag - $heute) + (($stunde * 60 + $minute) - ($hour * 60 + $min)) * 60) / 60;
}
}
if($ladedauer >= 0)
{
fhem ("set $Wallbox Param_Dauer_Ladevorgang $ladedauer");
fhem ("set $Wallbox Param_Energiemenge_Ladevorgang $lademenge");
}
Log3 $Timer, 3, "$Timer -> Schaltzeit für $Wallbox:".localtime(time()+$ladedauer*60)." mit Lademenge:".$lademenge." Dauer in Minuten:".$ladedauer;
}
Wer diese Automatik nutzen möchte, aber keinen verfügbaren SOC hat, der könnte eine Lademänge vorgeben, die er immer zu den definierten Abfahrtzeiten laden möchte. Also beispielsweise immer 15kWh, weil dies der übliche tägliche Verbrauch ist.
Dazu löscht man das UserReading "Lademenge" und packt dieses noch in das Setlist Attribut. So kann die Lademenge nun auch von Hand eingestellt werden. Weiterhin muss man im DOIF die Und-Bedingung and [duKia:evBatterySoc] <= [$SELF:SOC_Untergrenze]
entfernen.
Nun wird das DOIF jedes mal angestossen, wenn das Kabel eingesteckt wird. Ich hoffe, dass ich keine zu groben Schnitzer eingebaut habe und werde die Funktionen natürlich auch bei mir noch weiter testen.
Hi Jual,
ich habe mir so etwas auch schonmal erstellt, bevor der EVCharger da war. Kann ggf. auch noch verwendet oder angepasst werden.
Ich versuche nächste Woche nochmal etwas zu testen. Ich habe hier noch die Ladezeit in Sekunden ausgerechnet.
Am ende erfolgt eine Ausgabe, die ich dann noch umschreiben würde, dass gewisse set Befehle erfolgen. Aber ich denke im Ansatz ähnlich wie bei dir.
sub eGolfSMA()
{
my $targetmin = 50;
my $targetdiff = 0;
my $verbrauch = ReadingsVal("CarNet","rtsViewModel_longTermData_averageElectricConsumption","25");
my $restreichweite = ReadingsVal("CarNet","vehicleStatusData_batteryRange","0");
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $kwhdefizit = 0;
my $tladen = 0;
my $abfahrzeit = 0;
switch ($wday) {
case 0 {$targetmin = 80} # Sonntag
case 1 {$targetmin = 100} # Montag
case 2 {$targetmin = 50} # Dienstag
case 3 {$targetmin = 50} # Mittwoch
case 4 {$targetmin = 50} # Donnerstag
case 5 {$targetmin = 150} # Freitag
case 6 {$targetmin = 100} # Samstag
else {$targetmin = 50} # Sonst...
};
#Berechnung der Parameter
if ($restreichweite <= $targetmin)
{
$targetdiff = $targetmin - $restreichweite;
$kwhdefizit = $verbrauch / 100 * $targetdiff;
$tladen = $kwhdefizit / 7.2 * 3600;
$abfahrzeit = 24 - $hour + 4;
#Ausgabe
fhem(" set TeleBot message eGolf über SMA Energy App programmieren
\nZielzeit = $abfahrzeit Stunden
\nLadeziel = $kwhdefizit kWh
\nRestreichweite = $restreichweite km
\nZielreichweite = $targetmin km
\nDifferenz = $targetdiff km
\nkwh Defizit = $kwhdefizit kWh
\nManuelle Ladezeit = $tladen Sekunden");
}else
{ # debugging
#fhem(" set TeleBot message eGolf hat genug Reichweite
# \n Restreichweite = $restreichweite km
# \n Zielreichweite = $targetmin km
# \n Differenz = $targetdiff km
# \n kwh Defizit = $kwhdefizit kwh
# \n Manuelle Ladezeit = $tladen Sekunden");
}
}
Übers Wochenende konnte ich nochmal ein paar kleinere Tests machen und bin auch gerade dabei, die Infos und eine Steuerung über FTUI zu realisieren.
Beim Testen ist mir dann aufgefallen, dass der Lademodus sich wohl tatsächlich immer dann auf "Laden mit Vorgabe" ändert, wenn man eine Lademenge und eine Ladedauer angegeben hat. Das wäre soweit aus meiner Sicht in Ordnung. Eventuell könnte man aber auch über FHEM das Ganze so steuern, dass das Senden an die Wallbox erst dann stattfindet, wenn man selbst den Lademodus umschaltet. Dann müsste ich aber wahrscheinlich zusätzliche Readings vorsehen, denn diese würden ja immer durch die Info der Wallbox überschrieben.
Weiterhin ist mir ein kleiner Bug in meiner Umsetzung bzw. ein Verhalten der Wallbox aufgefallen, welches ich zeitnah ändern werde. Heute hatte ich festgestellt, dass die Lademenge, die meiner Frau manuell ermittelt und mittels App an die Box geschickt hat, eigentlich etwas zu wenig war. Ich habe dann über meine Steuerung die Menge einfach etwa erhöht. Das klappt auch, führt aber dazu, dass in diesem Moment die Zeit auf den Wert gestellt wird, der ursprünglich eingestellt wurde. Die Wallbox scheint sich in diesem Fall immer nach der angegeben Dauer zu richten. Im konkreten Fall bedeutete dies, dass die Ladung nicht in drei Stunden sondern erst am nächsten Tag fertig gewesen wäre.
Anscheinend erwartet die Box immer die gleichzeitige Änderung beider Werte. Das müsste ich also nochmal entsprechend anpassen.
Hi,
Also zu deinem neuen Punkt ist mir schon mal etwas aufgefallen was vielleicht helfen kann.
Solange das Fahrzeug eingestöpselt ist wird die Lademenge summiert.
Du kannst bspw. Drei mal je 1kwh Laden. Dabei musst du die Lademenge immer zu der vorherigen addieren, solange das Auto angestöpselt ist.
1. Mal Ladeziel 1kwh ladezeit= 20 Minuten um 1kwh zu laden
2. Mal Ladeziel 2kwh ladezeit= 20 Minuten um 1kwh zu laden
3. Mal Ladeziel 3kwh ladezeit= 20 Minuten um 1kwh zu laden
Ich habe das mal zum testen benutzt, wie oft ich starten kann bis mein Auto nicht mehr auf das Starten reagiert.
Vielleicht hilft das bei deinen Ansatz
Ich habe im zweiten Beitrag eine neue Version hinterlegt. Dort ist auch ein changelog zu finden.
Als nächste plane ich einmal die Steuerung bei der Anpassung des Lademenge während eine Ladevorgangs. Hier besteht aktuell das Problem, dass bei Änderung der Menge einfach die ursprüngliche Zeitdauer nochmals genutzt wird. Dies führt dazu, dass der Ladevorgang entsprechend verlängert wird. Wenn man also zunächst eine Ladung mit 20kw und einer Dauer von 480 Minuten definiert hat, dann wird bei einer Änderung der Lademenge zum Beispiel auf 30kw ab dem Zeitpunkt der Änderung auch die Zeitdauer wieder auf 480 Minuten gesetzt. Umsetzung ist schon in Arbeit, komme gerade aber nicht zum Testen ;-).
Darüber hinaus möchte ich auch für die set-Funktion noch Experten-Level definieren. Im Prinzip so, wie ich es jetzt bei den Readings gemacht habe. Hierzu würde ich aus aktueller Sicht tatsächlich ein neues Attribut "setting-level" anlegen. Dann ist man mit der Steuerung noch etwas flexibler. Wer möchte kann dann die Readings im Expertenmodus sehen aber bei der set-Funktion den basic-level beibehalten.
Weiterhin habe ich mir die Frage gestellt, ob ich ein zusätzliches Abfrageintervall einfügen sollte. Wenn kein Auto angeschlossen ist, muss man ja nicht zwingend ständig die Box abfragen. Dürfte zwar eigentlich kein Problem sein, könnte aber evtl. die Last bei dem einen oder anderen etwas reduzieren. Einziges Problem hierbei ist, dass man nicht erkennt, wenn der Stecker angeschlossen wird. Würde man das Abfrageintervall zu hoch setzen, dann dauert es entsprechend lange, bis man feststellt, dass man wieder das Intervall für "verbunden" nutzen soll. Vielleicht wäre ein Intervall, welches maximal bis 15 Minuten gesetzt werden kann eine Alternative?
Hi,
für die Intervalländerung habe ich bereits ein Doif. Ich denke dass man das auch beim Anwender belassen sollte. Grundsätzlich könnte man herausfinden welcher interval noch gut ist und nicht zu lang. Und welcher kürzester interval möglich ist. Ich habe neben den unten gezeigten doif auch noch eine intervaländerung wenn alle Bedingungen zum Laden erfüllt wären, aber noch nicht geladen wird. Das mache ich damit ich das Auto von extern wecke.
Auch würde interessieren ob sich etwas an einem der Zustände ändert wenn das Auto nicht geladen werden kann, weil das Auto nicht mehr antwortet. Das habe ich noch nicht testen können. Aber ich denke dass hier auch viel Zeit vergeht bis eine Meldung kommt. Besser wäre von sma ein bit, welches alle erfüllten Bedingungen zum Laden anzeigen würde.
defmod di_Abfrage_EVCharger DOIF ([EVCharger:Status_Ladevorgang] eq "nicht verbunden")\
(setreading di_Abfrage_EVCharger Vorgang getrennt)\
(attr EVCharger interval 300)\
(set TeleBot message EVCharger wurde getrennt)\
DOELSEIF ([EVCharger:Status_Ladevorgang] eq "verbunden"\
and [di_Abfrage_EVCharger:Vorgang] eq "laden")\
(setreading di_Abfrage_EVCharger Vorgang verbunden)\
(set TeleBot message EVCharger Ladung beendet)\
(attr EVCharger interval 120)\
DOELSEIF ([EVCharger:Status_Ladevorgang] eq "verbunden"\
and [di_Abfrage_EVCharger:Vorgang] ne "laden")\
(setreading di_Abfrage_EVCharger Vorgang verbunden)\
(set TeleBot message EVCharger wurde verbunden)\
(attr EVCharger interval 120)\
({system("python3 /home/pi/volkswagen-carnet-client/my-car.py -c mqtt")})\
DOELSEIF ([EVCharger:Status_Ladevorgang] eq "Ladevorgang aktiv")\
(setreading di_Abfrage_EVCharger Vorgang laden)\
(attr EVCharger interval 30)\
(set TeleBot message EVCharger Ladevorgang aktiv)
attr di_Abfrage_EVCharger room Garage
attr di_Abfrage_EVCharger wait 0,130,0:0,0,180:0,0,0:0,0,0
Hi Jual,
habe heute deine neue Version eingespielt und werde ab heute testen.
Mein EV-Charger hat am Wochenende ein Update erhalten . Version ist nun die .28.R
Laut PV Forum soll hier eine Verbesserung bei einschlafenden Fahrzeugen behoben sein. Und in der Tat lief es am Wochenende sehr gut bei mir. Ich hatte am
Freitag 5 Starts ohne Probleme
Samstag 2 Starts ohne Probleme
Sonntag 10 Starts ohne Probleme. Beim 11. Mal musste ich nachhelfen
dann nochmal 5 Starts ohne Probleme.
Alles ohne das Auto abzustöpseln.
Ich komme mit den Readings aus detail-level 0 ganz gut klar. Lediglich die Schnellabschaltung fehlt mir hier, die ich vorher in ein Filelog geschrieben habe. Ich wollte einfach nur mal wissen, ob es irgendwann mal zu dieser Abschaltung kommt. Vielleicht kannst du dieses Reading noch in das level 0 verschieben?
Ich schreibe auch alle Zustände in das Filelog, aber bislang hat sich nur der Zustand_Ladevorgang geändert, auf den ich auch reagiere. Ich hatte gehofft hier etwas über das Einschlafverhalten des Autos zu erkennen.
Danke für deine Arbeit!
Zitat von: Kamik am 31 Januar 2021, 20:41:39
Ich komme mit den Readings aus detail-level 0 ganz gut klar. Lediglich die Schnellabschaltung fehlt mir hier, die ich vorher in ein Filelog geschrieben habe. Ich wollte einfach nur mal wissen, ob es irgendwann mal zu dieser Abschaltung kommt. Vielleicht kannst du dieses Reading noch in das level 0 verschieben?
Ich schreibe auch alle Zustände in das Filelog, aber bislang hat sich nur der Zustand_Ladevorgang geändert, auf den ich auch reagiere. Ich hatte gehofft hier etwas über das Einschlafverhalten des Autos zu erkennen.
Ok, das Reading Schnellabschaltung nehme ich gerne in Level 0 auf. Am WE habe ich das Modul noch ein Stück weiter entwickelt. Nun können auch alle editierbaren Parameter mittels SET gesetzt werden. Wie erwähnt, habe ich hier zusätzlich einen setting-level eingeführt. Weiterhin habe ich eine Anpassung beim Ändern der Lademenge während eines Ladevorgangs vorgenommen. Nun wird immer die ursprüngliche Ende-Zeit übernommen.
Eigentlich wollte ich die Doku auch entsprechend ergänzen, bin aber noch nicht dazu gekommen. Daher habe ich das Modul mit den Anpassungen auch noch nicht wieder hoch geladen.
Bezüglich weiterer Infos habe ich mir überlegt, ob es evtl. noch von Interesse ist, die Dauer (oder Start-/Ende) des letzten Ladevorgangs sowie der Lademenge auszuweisen.
Ansonsten dürfte das Modul mit den letzten Änderungen schon einen finalen Stand haben. Weitere Ideen für zusätzliche Funktionalitäten hätte ich im Moment auch nicht mehr.
Heute habe ich den aktuellen Stand des Moduls hochgeladen. Ist wieder im zweiten Beitrag zu finden, genauso, wie die Beschreibung der Änderungen.
Damit dürfte das Modul aus meiner Sicht den finalen Zustand erreicht haben. Zusätzliche Anforderungen sowie Bugs - die bestimmt noch vorhanden sind - nehme ich gerne auf.
Viel Spaß bei der Nutzung.
Hi Jual,
danke für dass tolle Modul.
Seit Kurzem bin ich auch Besitzer eines EV-Chargers und habe ihn nun soweit eingerichtet und in FHEM integriert. :D
Es funktioniert bisher alles gut, bis auf den Status_Ladevorgang.
Hier deckt sich der Status in FHEM z.T. nicht mit dem auf der WebUI des Chargers. Dort steht manchmal "schlafend", aber in FHEM wird mir "verbunden" angezeigt.
In Antwort #11 ist der Status Ladevorgang mit 200112 --> "schlafend" erwähnt. Aber sonst konnte ich hier irgendwie nichts weiter finden. Wie ich herausfinden kann welchen Wert der Charger bei "verbunden" oder "schalfend" sendet weiß ich leider nicht. Sonst würde ich gerne helfen.
Grüße
Fabian
ZitatHier deckt sich der Status in FHEM z.T. nicht mit dem auf der WebUI des Chargers. Dort steht manchmal "schlafend", aber in FHEM wird mir "verbunden" angezeigt.
Freut mich, dass das Modul funktioniert. Bezüglich des Status schau ich nochmal nach, ob ich den Wert identifizieren kann. Habe das Modul schon längere Zeit nicht mehr angepackt, weil sonst alles ganz gut funktioniert und ich meinen Charger so selten im Einsatz habe. Kann jetzt in meiner Firma laden und bin sowieso mehr im HomeOffice ;-).
@fabtie
Wenn du den Verbose Level auf 5 setzt, dann kannst du im Logfile alle Daten sehen, die vom Charger geladen werden. Der Status 200112 müsste eigentlich für "verbunden" stehen. Es könnte sein, dass der Status für "schlafend" den Wert 200114.
Idealerweise setzt änderst du den Verbose-Level wenn dein Charger den Status "schlafend" anzeigt. Bei Level 5 werden ansonsten reichlich Daten ins Log geschrieben, insbesondere kurzen Aktualisierungsintervallen.
Hi Jural,
danke für die Rückmeldung.
Wenn ich auf Verbose = 5 gestellt habe finde ich nur den Wert 200112:
"values":[{"time":"2021-05-17T20:11:51.395Z","value":200112}]}
Den Wert 200114 finde ich im Logfile nicht.
Allerdings habe ich am WE festgestellt, dass auf der WebUI vom Charger wohl immer "schlafend" steht, wenn nicht gerade geladen wird. Von daher ist "verbunden" ja nicht unbedingt falsch.
Grüße Fabian
Ich habe es nun versucht, auch nochmal nachzuvollziehen. Anscheinend gibt es tatsächlich nur die zwei Zustände "Aktiv" für einen aktiven Ladevorgang und "verbunden/schlafend". Ich würde das dann erst einmal bei "verbunden" belassen.
Hallo,
erstmal cool und danke das ihr hier den SMA EV Charger intigriert habt.
Ich habe aber öfter folgende Meldung im Log
2021.06.24 17:09:39 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 828, <GEN12> line 103729.
2021.06.24 17:09:39 3: eval: {SMAEVCharger_Done('EV_CHarger_22|1|bm9kZTBvZDFicTNieG04ZDB6NGR6ZzB5eW9hejIyOC5ub2RlMHxleUpoYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNalExTkRVd016WXNJbk4xWWlJNklsQmhjbWxsY3lJc0luVnBaQ0k2SW1Sa05UYzRNalZqTFdJNFpEZ3RORGsyWVMxaVpUSmpMVFU1TWpOaU1tRXlaakE1WWlJc0ltVjRjQ0k2TVRZeU5EVTBPRFl6Tm4wLnVBRDlmQWYzU09WeXRxMWNEaFdUV1Y3OUlNVEt1eE54dFNjUU9iNDV5YzR8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTWpRMU5EVXdNellzSW5OMVlpSTZJbEJoY21sbGN5SXNJblZwWkNJNkltUmtOVGM0TWpWakxXSTRaRGd0TkRrMllTMWlaVEpqTFRVNU1qTmlNbUV5WmpBNVlpSXNJbVY0Y0NJNk1UWXlORFl6TVRRek5pd2lkSGx3WlNJNkluSmxabkpsYzJnaWZRLm82TElrTHVZby1aSzBMVXVRc01OTlgyY2hSVWE3ajhROVBzSFhXSTBPbDR8MTYyNDU0ODYzNg==|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yM1QxMjozNDoxMS43OTNaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5DaHJnLk1vZFN3IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yM1QxMjozMzo1NS4yMTBaIiwidmFsdWUiOjQ5NTB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozOC4xMTJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozOC4xMTJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozOC4xMTJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTI0VDE1OjA5OjM2LjY0M1oiLCJ2YWx1ZSI6NDkuOTgwMDAwMDAwMDAwMDA0fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlBoVi5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozNi42NDNaIiwidmFsdWUiOjIzOC42fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlBoVi5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozNi42NDNaIiwidmFsdWUiOjM2Ljl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0MiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTI0VDE1OjA5OjM2LjY0M1oiLCJ2YWx1ZSI6MzQuMzAwMDAwMDAwMDAwMDA0fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFBGIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozNi42NDNaIiwidmFsdWUiOjF9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90VkEiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTI0VDE1OjA5OjM2LjY0M1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQXIiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTI0VDE1OjA5OjM2LjY0M1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkluT3V0LkdJMSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDYtMjNUMTI6MzM6MjEuMzg2WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdJbiIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDYtMjRUMTU6MDk6MzYuNjQzWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdJbi5DaGFTdGEiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTI0VDE1OjA5OjM2LjY0M1oiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk1ldGVyaW5nLkdyaWRNcy5Ub3RXaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozNi41OTZaIiwidmFsdWUiOjY3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozNi41OTZaIiwidmFsdWUiOjY3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkVWZWguQ2hhU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yNFQxNTowOTozNy42NjFaIiwidmFsdWUiOjIwMDExMX1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDYtMjNUMTI6MzM6NTMuMzgwWiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRXZ0Lk1zZyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDYtMjNUMTI6MzM6MDAuNzQ1WiIsInZhbHVlIjozMDJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uSGVhbHRoIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yM1QxMjozMzoyNC4zNjNaIiwidmFsdWUiOjMwN31dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5XTWF4TGltU3JjIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yM1QxMjozMzowMC43NDdaIiwidmFsdWUiOjI2MDh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5BY3FTdHQiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTIzVDEyOjMzOjMyLjU3MloiLCJ2YWx1ZSI6MzM2OX1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLkNvbm5TdHQiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTA2LTIzVDEyOjMzOjMyLjc1MloiLCJ2YWx1ZSI6MzAzfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuU2lnUHdyIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0wNi0yM1QxMjozMzozMi43NTNaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5Tb2Z0QWNzQ29ublN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDYtMjNUMTI6MzM6MzIuNjIxWiIsInZhbHVlIjozMDN9XX0seyJjaGFubmVsSWQiOiJTZXRwb2ludC5QbGFudENvbnRyb2wuSW52ZXJ0ZXIuRnN0U3RvcCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMDYtMjNUMTI6MzM6MzAuMzg2WiIsInZhbHVlIjoxNDY3fV19XXxbeyJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3dSZXZUeHQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yNFQxNTowOTozNi44MDVaIiwidmFsdWUiOiJTQS0wMS4wMy4yMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLlNlYy5DcnkiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzMyMyIsIjMzMjQiLCIzMzk4Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzozMi40MzdaIiwidmFsdWUiOiIzMzk4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uSHdSZXYiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyNC4zOTVaIiwidmFsdWUiOiJSNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLklnbXBRcnlUbXMiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjozMTc0NCwibWluIjoxMSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjIxLjE5MVoiLCJ2YWx1ZSI6IjEyNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5Nb2RlbCIsImVkaXRhYmxlIjpmYWxzZSwicG9zc2libGVWYWx1ZXMiOlsiOTQ4NCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjQuMzYzWiIsInZhbHVlIjoiOTQ4NCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5Mb2NhdGlvbiIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjIuNDYyWiIsInZhbHVlIjoiRVYgQ2hhcmdlciAyMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlN1c3lJZCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI4LjI0MloiLCJ2YWx1ZSI6IjQyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkRvV1BTIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjEiLCIzMDIiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjMyLjY4NloiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxEbnNTcnZJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjM0OjI3LjQ2MFoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuQU1pbkNoYSIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjMyLCJtaW4iOjYsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMjVaIiwidmFsdWUiOiI2In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuT3V0UGhzIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMyNiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjguMjI3WiIsInZhbHVlIjoiMzI2In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5QbGFuLkVuIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzo1NS4yNDFaIiwidmFsdWUiOiIwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1haW5Nb2RlbCIsImVkaXRhYmxlIjpmYWxzZSwicG9zc2libGVWYWx1ZXMiOlsiODAwOCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjguMTc0WiIsInZhbHVlIjoiODAwOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlBDQy5BUnRnIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwLCJtaW4iOjAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMjhaIiwidmFsdWUiOiIzMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5Qa2dSZXYiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyMi40NTdaIiwidmFsdWUiOiIxLjEuMjguUiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxHd0lwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzQ6MjcuNDYxWiIsInZhbHVlIjoiMTcyLjIyLjAuMyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLlNlYy5Qc2siLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjMyLjQyN1oiLCJ2YWx1ZSI6IioqKioifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuRmxiSW52LldNYXgiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyMjAwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjguMjIwWiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkF1dG9DZmdJc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjM0OjI3LjQ2MFoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4SW5SdGciLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMzlaIiwidmFsdWUiOiIyMjAwMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5TZXJOdW0iLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyNy41NDZaIiwidmFsdWUiOiIzMDEyMDIwNzI3In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3dDbXAuQ21wRW5uZXhPUy5GcndrLlN3UmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjQuMzYyWiIsInZhbHVlIjoiMS4xNS4wIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLkNocmdUeXBUeHQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4xNzNaIiwidmFsdWUiOiJ3YWxsYmUgU21hcnQgQ2hhcmdlIENvbnRyb2wgMjc5MS4wNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzQ6MjcuNDYwWiIsInZhbHVlIjoiMjU1LjI1NS4yNTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlVwZC5BdXRvVXBkSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5IiwiMTEzMCJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjIuMTc2WiIsInZhbHVlIjoiMTEyOSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5Nb2RlbFN0ciIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI0LjM2M1oiLCJ2YWx1ZSI6IkVWQzIyLTNBQy0xMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5TdXN5SWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4xNzFaIiwidmFsdWUiOiI0MjgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsSXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozNDoyNy40NjBaIiwidmFsdWUiOiIxNzIuMjIuMC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bFNuZXRNc2siLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozNDoyNy40NjBaIiwidmFsdWUiOiIyNTUuMjU1LjAuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuQWN0Q2hhTW9kIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjQ3MTkiLCI0NzIwIiwiNDcyMSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6NTUuMjI4WiIsInZhbHVlIjoiNDcxOSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLklnbXBRcnlUeCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDMiLCI0NDc4IiwiNDQ3OSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjEuMTkxWiIsInZhbHVlIjoiNDQ3OSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlJldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI0LjM5N1oiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjM0OjI3LjQ2MFoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjM0OjI3LjQ2MFoiLCJ2YWx1ZSI6IjE5Mi4xNjguMTAuOTcifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlVzZUVuZXJneU1ldGVyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMjZaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjEuOTUwWiIsInZhbHVlIjoiMzAxMTg4Mjk1MyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5TdG9wVG0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjU1WiIsInZhbHVlIjoiMTYyNDQ1MTYzNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjU5LjM4N1oiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI0LjM2NloiLCJ2YWx1ZSI6IjEuNC4xIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI4LjIyMVoiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjguMjIxWiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI4LjIyMloiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMjNaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjMyLjQyNFoiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjguMjM4WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjI4LjIyMVoiLCJ2YWx1ZSI6IjExMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTI0VDE1OjA5OjM2Ljc3NVoiLCJ2YWx1ZSI6IjAwMDAwMDI5NzA3In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzozMi43NTNaIiwidmFsdWUiOiI3NDo3QTo5MDpFMjpCRjozMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTA2LTIzVDEyOjMzOjU1LjI0MVoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXZhbENoa0lzdGwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzAyIiwiMTE0NiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjEuNjgzWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLlZlbmRvciIsImVkaXRhYmxlIjpmYWxzZSwicG9zc2libGVWYWx1ZXMiOlsiNDYxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyNC4zOTdaIiwidmFsdWUiOiI0NjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Jc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzozMi41MTNaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQXV0b0NmZ0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzQ6MjcuNDYxWiIsInZhbHVlIjoiMTEyOSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMjNaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bERuc1NydklwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzQ6MjcuNDYxWiIsInZhbHVlIjoiMTcyLjIyLjAuMyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsVG0iLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoxNDQwLCJtaW4iOjUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzoyOC4yMjRaIiwidmFsdWUiOiIxNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLlNvZnRBY3NJc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0wNi0yM1QxMjozMzozMi41NzVaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuRG9BY3EiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzM0MiIsIjMwMiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MzIuNTczWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5NaW5Td1RtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjYwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjguMjI2WiIsInZhbHVlIjoiMTIwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1hY0lkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMDYtMjNUMTI6MzM6MjcuNTQ2WiIsInZhbHVlIjoiMDA6MTU6QkI6MDM6MkI6RUMifV19XQ==')}
Gruß
Max
Ich habe aber öfter folgende Meldung im Log
2021.06.24 17:09:39 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 828, <GEN12> line 103729.
2021.06.24 17:09:39 3: eval: {SMAEVCharger_Done('EV_CHarger_22|1|bm9kZTBvZDFicTNieG04
[/quote]
Danke für den Hinweis. Das war mir tatsächlich neulich auch aufgefallen und tritt wohl in erster Linie beim Neustart von FHEM auf. Ist als Warnung aber grundsätzlich unkritisch und ich hoffe, dass ich bald mal Zeit finde, mich dem Thema anzunehmen ;-).
Hallo Jual,
Die Meldung kommt mei mir mehrmals am Tag.
Noch habe ich kein Auto zur Wallbox es scheint aber sonst alles zu passen.
Wollte das nur mal melden, kein Stress.
Gruß
Max
Neue Version ist im zweiten Beitrag zu finden. Die Warnungen sollten nun hoffentlich verschwunden sein und es gibt nun auch die Info zum Drehschalter für "intelligentes Laden" oder "Schnellladen"
Hallo Jual,
Scheint soweit zu laufen, dankeschön :)
Hallo Jual,
mein Fehm ist mir heute abgeschmiert weil $head und $body nicht definiert waren.
Zeile 1234 habe ich vorher eine überprüfung eingebaut das diese Definiert sind.
if (defined $head && defined $body)
{
($code) = $head =~m{\A\S+ (\d+)};
Log3 $name, 5, "$name - Curl Response Header: ".$head;
Log3 $name, 5, "$name - Curl Response Body: ".$body;
Log3 $name, 5, "$name - Curl Response Code: ".$code;
if ($code == 200) # login ok
{
my ($cookies) = $head =~m{JSESSIONID= ?(.*);};
my ($sessionid, $othercookies) = split(/;/, $cookies,2);
Log3 $name, 5, "$name - Cookies:".$cookies;
Log3 $name, 5, "$name - SessionID:".$sessionid;
$body = decode_json($body);
$hash->{HELPER}{ACCESS_TOKEN} = $body->{"access_token"};
$hash->{HELPER}{REFRESH_TOKEN} = $body->{"refresh_token"};
$hash->{HELPER}{EXPIRE_TOKEN} = time() + $body->{"expires_in"};
# remember all things for the actual session login
$hash->{HELPER}{SESSIONID} = $sessionid;
Log3 $name, 4, "$name - login success";
}
else
{
# todo err handling
Log3 $name, 3, "$name - Curl Response Error Code:".$code.":";
$hash->{HELPER}{SESSIONID} = "";
$hash->{HELPER}{ACCESS_TOKEN} = "";
$hash->{HELPER}{REFRESH_TOKEN} = "";
$hash->{HELPER}{EXPIRE_TOKEN} = 0;
return 0;
}
}
Eventuell magst du das ja übernehmen.
Gruß
Max
Danke für den Hinweis. Schaue ich mir an und übernehme es dann gerne.
Hallo zusammen,
ich bekomme nach set SMAEVCharger Param_Betriebsart_Ladevorgang Laden_mit_Vorgabe
die Meldung
Please first set values Param_Energiemenge_Ladevorgang and Param_Dauer_Ladevorgangs
Zuvor hatte ich bereits aus meiner Sicht plausible Werte eingestellt (die werden auch in den Readings korrekt angezeigt)
set SMAEVCharger Param_Energiemenge_Ladevorgang 10
set SMAEVCharger Param_Dauer_Ladevorgang 120
Noch eine Sache: Spasseshalber habe ich mal set SMAEVCharger Param_Betriebsart_Ladevorgang Schnellladen
ausprobiert und erhalte folgende Meldung: Value not allowed! Possible Values: 4719; 4720; 4721
Weiss jemand Rat?
Danke & Grüße
Nachdem ich bisher nicht dazu gekommen war, schaue ich mir das morgen mal an.
Vielen Dank nochmals für eure Hinweise. Tatsächlich hatten sich ein paar kleinere Fehler eingeschlichen (siehe Beitrag 2). Es gibt nun eine neue Datei, die hoffentlich alle gemeldeten Bugs behebt.
Hallo Jual,
ich habe deine Version jetzt am Laufen, bisher sieht alles gut aus.
Danke.
Gruß
Max
Danke!
jual würdest Du das Modul ins SVN aufnehmen, dann wäre das Updaten einfacher?
Danke für das tolle Modul!
Viele Grüße
eddy
Grüße zusammen,
was muss der Laie (ich) tun, um das Modul in FHEM ans Laufen zu bekommen?
Meine EV Charger 22 ist seit heute am Netz 8)
Zitat von: Dracolein am 30 November 2021, 21:30:20
Grüße zusammen,
was muss der Laie (ich) tun, um das Modul in FHEM ans Laufen zu bekommen?
Meine EV Charger 22 ist seit heute am Netz 8)
Die Datei 76_SMAEVCharger.pm aus dem 2. Beitrag herunter laden. Diese Datei dann in das FHEM Verzeichnis kopieren, wo auch alle anderen Module zu finden sind. Am besten danach ein Neustart von FHEM machen und dann kann man mit define das eigene Device definieren. Ohne Neustart würde es auch mit dem Befehl "reload 76_SMAEVCharger.pm" in der Kommandozeile in fhem funktionieren. Ich würde aber den Neustart empfehlen.
Ich schaue mir gerade an, was ich tun muß, um das Modul in die Versionsverwaltung (SVN) von fhem zu integrieren. Dann wären zukünftige Updates leichter zu handhaben.
Danke Dir, und das Python-Script im Anhang von Beitrag #2 kann ich ignorieren?
Zitat von: Dracolein am 01 Dezember 2021, 06:26:52
Danke Dir, und das Python-Script im Anhang von Beitrag #2 kann ich ignorieren?
Ja, das Python Script war der erste Entwurf, bevor ich versucht habe ein richtiges FHEM Modul zu entwickeln. Könnte ich wahrscheinlich mal entfernen.
Vielleicht als Tip für Non-Programmers like me, packst Du in das zweite Posting noch eine Kurzanleitung für das define rein?
Zitatsyntax: use define <name> SMAEVCharger <inv-hostname/inv-ip> <inv-username> <inv-userpwd>
Ich hab mich nämlich totgesucht und es dann in der ***.pm File als return value gefunden ;)
Weiterhin würde ich mich freuen, wenn das Login-Kennwort irgendwie verschlüsselter abgespeichert würde falls das geht.
Ansonsten scheint das Modul auf Anhieb bei mir zu funktionieren und liefert tolle Readings.
Großen Respekt an Dich, klasse!
edit:
sorry, Erklärung stand ja auch schon dort :-[
Nachfrage: bei mir wird minütlich ins Logfile geschrieben:
ZitatEVCharger22 - ########## SMAEVCharger get all data ##########
Was hat das zu bedeuten?
Hallo zusammen,
ich habe global stacktrace angeschaltet weil ich eine andere Sache debuggen wollte, die nichts mit dem EV Charger Modul zu tun hat. Dann bekomme ich sekündlich (!!!) die folgenden Zeilen:
2021.12.12 09:15:38 1: main::CallFn called by fhem.pl (773)
2021.12.12 09:15:38 1: main::telnet_Read called by fhem.pl (3895)
2021.12.12 09:15:38 1: main::AnalyzeCommandChain called by ./FHEM/98_telnet.pm (256)
2021.12.12 09:15:38 1: main::AnalyzeCommand called by fhem.pl (1116)
2021.12.12 09:15:38 1: main::AnalyzePerlCommand called by fhem.pl (1189)
2021.12.12 09:15:38 1: (eval) called by fhem.pl (1160)
2021.12.12 09:15:38 1: main::SMAEVCharger_Done called by (eval 78306875) (1)
2021.12.12 09:15:38 1: main::SMAEVCharger_handledata called by ./FHEM/76_SMAEVCharger.pm (971)
2021.12.12 09:15:38 1: main::SMAEVCharger_getReadableCode called by ./FHEM/76_SMAEVCharger.pm (826)
2021.12.12 09:15:38 1: main::__ANON__ called by ./FHEM/76_SMAEVCharger.pm (124)
2021.12.12 09:15:38 1: stacktrace:
2021.12.12 09:15:38 1: eval: {SMAEVCharger_Done('SMAEVCharger|1|bm9kZTAxdm83MnZpMnRwMnMxdjczZm9sbnl0MnUwMTI0Ni5ub2RlMHxleUpoYkdjaU9pSklVekkxTmlKOS5leUpwWVhRaU9qRTJNemt5T1RZd09UY3NJbk4xWWlJNklraE1ZWFJJYjIxbFUwMUJRMmhoY21kbGNpSXNJblZwWkNJNkltSTJOR1U1TXpneUxXWTVPVFl0TkRNek15MDROalExTFdZeFlqa3pNMll6TUdJNVppSXNJbVY0Y0NJNk1UWXpPVEk1T1RZNU4zMC5rZE9PTWEzalZPclNlb3lIbzMtakpCaDFzTDlEYlh2ZmplQ1hnOFUwTnNrfGV5SmhiR2NpT2lKSVV6STFOaUo5LmV5SnBZWFFpT2pFMk16a3lPVFl3T1Rjc0luTjFZaUk2SWtoTVlYUkliMjFsVTAxQlEyaGhjbWRsY2lJc0luVnBaQ0k2SW1JMk5HVTVNemd5TFdZNU9UWXRORE16TXkwNE5qUTFMV1l4WWprek0yWXpNR0k1WmlJc0ltVjRjQ0k2TVRZek9UTTRNalE1Tnl3aWRIbHdaU0k2SW5KbFpuSmxjMmdpZlEuam5BWHFkMEJ4YmFXYWZrelhPWWllVU81SDhqbXdyQjV6SWNLUzNGTzZKb3wxNjM5Mjk5Njk3|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMS0yOVQwNjoyOTo0Mi4zMDBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5DaHJnLk1vZFN3IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMS0yN1QxMjowNzo1My4xMjdaIiwidmFsdWUiOjQ3MTh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQwODoxNTozNy43MDJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQwODoxNTozNy43MDJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQwODoxNTozNy43MDJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDA4OjE1OjM0LjIzNloiLCJ2YWx1ZSI6NTAuMDF9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDA4OjE1OjM0LjIzNloiLCJ2YWx1ZSI6MjQxLjZ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0IiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDA4OjE1OjM0LjIzNloiLCJ2YWx1ZSI6MjQxLjF9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0MiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDA4OjE1OjM0LjIzNloiLCJ2YWx1ZSI6MjQwLjh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDA4OjE1OjM0LjIzN1oiLCJ2YWx1ZSI6MX1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMDg6MTU6MzQuMjM2WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMDg6MTU6MzQuMjM2WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToxNS41OTNaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQwODoxNTozNC4yMzZaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMDg6MTU6MzQuMjM2WiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDA4OjE1OjM0LjE4OFoiLCJ2YWx1ZSI6Mjk1NjUwfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQwODoxNTozNC4xODhaIiwidmFsdWUiOjI5NTY1MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMDg6MTU6MzcuMjUxWiIsInZhbHVlIjoyMDAxMTF9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEwLTA1VDAyOjM2OjQ5Ljk0N1oiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTExLTI5VDA2OjI5OjQyLjMzMloiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTEtMjlUMDY6Mjk6NDIuMzMyWiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbU5vbSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjE5NzAtMDEtMDFUMDA6MDA6MDAuOTczWiJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTAtMDVUMDI6MzQ6NTcuNTkyWiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQ29ublN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTAtMDVUMDI6MzU6MjcuMDQ4WiIsInZhbHVlIjozMDN9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5TaWdQd3IiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEwLTA1VDAyOjM1OjI3LjA2OVoiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNvZnRBY3NDb25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToyNi45MDJaIiwidmFsdWUiOjMwOH1dfSx7ImNoYW5uZWxJZCI6IlNldHBvaW50LlBsYW50Q29udHJvbC5JbnZlcnRlci5Gc3RTdG9wIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToyNC4yMzNaIiwidmFsdWUiOjE0Njd9XX1dfFt7ImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3siY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5Td1JldlR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEyLTEyVDA4OjE1OjI0LjQwM1oiLCJ2YWx1ZSI6IlNBLTAxLjAzLjI2In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLkNyeSIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIzIiwiMzMyNCIsIjMzOTgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljc3N1oiLCJ2YWx1ZSI6IjMzOTgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5Id1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0NFoiLCJ2YWx1ZSI6IlI1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVRtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjMxNzQ0LCJtaW4iOjExLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuMzQyWiIsInZhbHVlIjoiMTI1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1vZGVsIiwiZWRpdGFibGUiOmZhbHNlLCJwb3NzaWJsZVZhbHVlcyI6WyI5NDg0Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44MzhaIiwidmFsdWUiOiI5NDg0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkxvY2F0aW9uIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxNi42NDRaIiwidmFsdWUiOiJTTUEgRVYgQ0hBUkdFUiAyMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlN1c3lJZCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjQyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkRvV1BTIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjEiLCIzMDIiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljk5MVoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxEbnNTcnZJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFNaW5DaGEiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjozMiwibWluIjo2LCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiNiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkludmVydGVyLk91dFBocyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMjYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjMyNiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5FbiIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MTA6MzguMzkzWiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjIxLjg1OFoiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTYuNjQxWiIsInZhbHVlIjoiMS4xLjM0LlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyOFoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi43NDZaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yMFQwMDoxMDoxMi4yMjdaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjAuNDA5WiIsInZhbHVlIjoiMzAxMjAyMDY1MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4LjgzN1oiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjEuODU4WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE2LjQ0OVoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44MzhaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjEuODUxWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI3WiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI3WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE4IiwiNDcyMSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MTA6MzguMzkzWiIsInZhbHVlIjoiNDcxOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLklnbXBRcnlUeCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDMiLCI0NDc4IiwiNDQ3OSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuMzQxWiIsInZhbHVlIjoiNDQ3OSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlJldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0NloiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsSXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yMFQwMDoxMDoxMi4yMjdaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xNTIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlVzZUVuZXJneU1ldGVyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTYuMDg5WiIsInZhbHVlIjoiMzAxMTg4MzAzMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5TdG9wVG0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjEwOjM4WiIsInZhbHVlIjoiMTYzODEzMzgzOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjQ2LjExOVoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0MVoiLCJ2YWx1ZSI6IjEuNC4zIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjIyMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljc0M1oiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjIyMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEyLTEyVDA4OjE1OjI0LjM3MVoiLCJ2YWx1ZSI6IjAwMDAwMDI4Nzk1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNy4wNjlaIiwidmFsdWUiOiI1ODpENTowQTo5QTozRDpCNyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjEwOjM4LjM5NFoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXZhbENoa0lzdGwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzAyIiwiMTE0NiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuNzgyWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLlZlbmRvciIsImVkaXRhYmxlIjpmYWxzZSwicG9zc2libGVWYWx1ZXMiOlsiNDYxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44NjdaIiwidmFsdWUiOiI0NjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Jc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi44NDJaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQXV0b0NmZ0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI4WiIsInZhbHVlIjoiMTEyOSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bERuc1NydklwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI4WiIsInZhbHVlIjoiMTcyLjIyLjAuMyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsVG0iLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoxNDQwLCJtaW4iOjUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLlNvZnRBY3NJc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi44NDRaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuRG9BY3EiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzM0MiIsIjMwMiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjYuNjYzWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5NaW5Td1RtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjYwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMTIwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1hY0lkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjAuNDEwWiIsInZhbHVlIjoiMDA6MTU6QkI6MDM6MzA6RjYifV19XQ==')}
2021.12.12 09:15:38 1: PERL WARNING: Use of uninitialized value $code in string eq at ./FHEM/76_SMAEVCharger.pm line 124.
2021.12.12 09:15:38 1:
Gibt's da Abhilfe oder weiss jemand einen Workaround, weil ich jetzt nur schwer das finde, was ich eigentlich anschauenwollte.
Danke & Grüße
Zitat von: eddy242 am 12 Dezember 2021, 09:19:55
Hallo zusammen,
ich habe global stacktrace angeschaltet weil ich eine andere Sache debuggen wollte, die nichts mit dem EV Charger Modul zu tun hat. Dann bekomme ich sekündlich (!!!) die folgenden Zeilen:...
Gibt's da Abhilfe oder weiss jemand einen Workaround, weil ich jetzt nur schwer das finde, was ich eigentlich anschauenwollte.
Danke für den Hinweis. Ich versuche es mal nachzuvollziehen und schau mal, woran das liegen kann. Vielleicht gibt es ja auch fhem Programmierprofis, die eine Idee haben.
Zitat von: Dracolein am 03 Dezember 2021, 06:25:13
Nachfrage: bei mir wird minütlich ins Logfile geschrieben:
Was hat das zu bedeuten?
Das ist quasi die "Erfolgsmeldung" des minütlichen Lesevorgangs. Könnte man durch Änderung des Verbose-Level verhindern. Die Info wird aktuell mit Verbose = 3 gelogged. Kann also mit setzen auf den Wert 2 für das Modulk angepasst werden.
Zitat von: eddy242 am 12 Dezember 2021, 09:19:55
Hallo zusammen,
ich habe global stacktrace angeschaltet weil ich eine andere Sache debuggen wollte, die nichts mit dem EV Charger Modul zu tun hat. Dann bekomme ich sekündlich (!!!) die folgenden Zeilen:
Gibt's da Abhilfe oder weiss jemand einen Workaround, weil ich jetzt nur schwer das finde, was ich eigentlich anschauenwollte.
Danke & Grüße
Ich habe mal versucht, den Fehler bei mir nachzuvollziehen, bin aber bisher nicht wirklich fündig geworden. Habe auch mal Stacktrace bei mir eingeschaltet, bekomme aber keinerlei Warnings von dem Wallbox-Modul.
Ich kann aber eine Abfrage einbauen, ob der Übergabeparameter "code" definiert ist. Eigentlich dürfte dieser Zustand aber nie eintreten. Es gibt zwar eine theoretische Möglichkeit, wenn es keinen Wert eines Wallbox-Parameters gibt. Dies könnte beispielsweise bei der WLAN SSID der Fall sein. Aber bei mir ist der Wert anscheinend auch leer und die Warnung wird nicht erzeugt.
Daher würde ich mich dem Problem einmal gerne etwas annähern und vielleicht kannst du mal folgende Punkte durchgehen:
- Welchen Wert hast du für INTERVAL angegben? Steht der evtl. auf 1, dann würde jede Sekunde eine Abfrage stattfinden
- Welchen Wert hast du für das Attribut detail-level angegeben?
- Hast du mal versucht, für das Modul verbose auf 5 zu setzen? Dann aber zeitnah wieder umstellen auf >=3, sonst wird sehr viel ins Log geschrieben. Hier mal nachschauen, ob es irgendwelche seltsamen Meldungen gibt
Hier das List. Die Userreadings und das MQTT Publish habe benötige ich für die Kommunikation mit EVCC, sollten hier aber m.E. nichts zur Sache tun.
Internals:
DEF 192.168.178.152 HLatHomeSMACharger xyz
FUUID 60cd9670-f33f-0759-521f-6c2953ba81f81599
HOST 192.168.178.152
INTERVAL 60
LASTUPDATE 12.12.2021 / 16:27:04
NAME SMAEVCharger
NR 500
PASS xyz
STATE nicht verbunden
TYPE SMAEVCharger
USER HLatHomeSMACharger
HELPER:
ACCESS_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MzkzMjI1MjIsInN1YiI6IkhMYXRIb21lU01BQ2hhcmdlciIsInVpZCI6ImI2NGU5MzgyLWY5OTYtNDMzMy04NjQ1LWYxYjkzM2YzMGI5ZiIsImV4cCI6MTYzOTMyNjEyMn0.jrhXeXWaFwTq2r3dkUDyJvyJNq8M3yWER_DMJ63rNdk
BASEURL https://192.168.178.152
EXPIRE_TOKEN 1639326122
INTERVAL 60
REFRESH_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MzkzMjI1MjIsInN1YiI6IkhMYXRIb21lU01BQ2hhcmdlciIsInVpZCI6ImI2NGU5MzgyLWY5OTYtNDMzMy04NjQ1LWYxYjkzM2YzMGI5ZiIsImV4cCI6MTYzOTQwODkyMiwidHlwZSI6InJlZnJlc2gifQ.PdDSDkMn4zGwTbae7DjJCmwnpiaA8si7iA2UhelKi2k
SESSIONID node0hvihhobocxr5r1hoyb82hod71254.node0
Status_Ladevorgang nicht verbunden
Helper:
DBLOG:
Anzahl_Ladevorgaenge:
logdb:
TIME 1638167129.26333
VALUE 1
Blindleistung:
logdb:
TIME 1638167428.62119
VALUE 0
Energie_Ladevorgang:
logdb:
TIME 1638167428.62119
VALUE 0
Leistung_Bezug:
logdb:
TIME 1638167428.62119
VALUE 0
Leistung_Ladestation:
logdb:
TIME 1638167428.62119
VALUE 0
Netzfrequenz:
logdb:
TIME 1639322824.19289
VALUE 50.01
Netzspannung_Phase_L1:
logdb:
TIME 1639321803.1097
VALUE 241.1
Netzspannung_Phase_L2:
logdb:
TIME 1639322824.19289
VALUE 240.2
Netzspannung_Phase_L3:
logdb:
TIME 1639318020.04312
VALUE 240.4
Netzstrom_Phase_L1:
logdb:
TIME 1638167428.62119
VALUE 0
Netzstrom_Phase_L2:
logdb:
TIME 1638167428.62119
VALUE 0
Netzstrom_Phase_L3:
logdb:
TIME 1638167428.62119
VALUE 0
Param_Bemessungswirkleistung_WMaxInRtg:
logdb:
TIME 1638134496.1029
VALUE 22000
Param_Betrieb_mit_Netzanschlusspunktzaehler:
logdb:
TIME 1638134496.1029
VALUE ja
Param_Betriebsart_Ladevorgang:
logdb:
TIME 1638134496.1029
VALUE Schnellladen
Param_Dauer_Ladevorgang:
logdb:
TIME 1638134496.1029
VALUE 0
Param_Ende_Ladevorgang:
logdb:
TIME 1638134496.1029
VALUE 2021-11-28 22:10:38
Param_Energiemenge_Ladevorgang:
logdb:
TIME 1638134496.1029
VALUE 0
Param_Fallback_Wirkleistungsbegrenzung:
logdb:
TIME 1638134496.1029
VALUE 0
Param_Geraetename:
logdb:
TIME 1638134496.1029
VALUE SMA EV CHARGER 22
Param_Ladebereitschaft_bis_Trennung:
logdb:
TIME 1638134496.1029
VALUE 15
Param_Maximale_Schieflast:
logdb:
TIME 1638134496.1029
VALUE 4600
Param_Minimale_Schaltdauer_Relais:
logdb:
TIME 1638134496.1029
VALUE 120
Param_Minimaler_Ladestrom:
logdb:
TIME 1638134496.1029
VALUE 6
Param_Nennstrom_Netzanschluss:
logdb:
TIME 1638134496.1029
VALUE 32
Param_Nennstrom_alle_Phasen:
logdb:
TIME 1638134496.1029
VALUE 32
Param_Nennwirkleistung_WMaxIn:
logdb:
TIME 1638134496.1029
VALUE 22000
Param_Nennwirkleistung_WMaxOut:
logdb:
TIME 1638134496.1029
VALUE 22000
Param_Netz_Nennspannung:
logdb:
TIME 1638134496.1029
VALUE 230
Param_Trennung_nach_Vollladung:
logdb:
TIME 1638134553.51011
VALUE nein
Schalterstellung_Drehschalter:
logdb:
TIME 1638134496.1029
VALUE Schnellladen
Scheinleistung:
logdb:
TIME 1638167428.62119
VALUE 0
Schnellabschaltung:
logdb:
TIME 1638134496.1029
VALUE 1467
Signalstaerke_Netzwerk:
logdb:
TIME 1638134496.1029
VALUE 0
Startzeit_Verbindung:
logdb:
TIME 1638167428.62119
VALUE nicht verbunden
Status_Ladevorgang:
logdb:
TIME 1638167428.62119
VALUE nicht verbunden
Status_Meldung:
logdb:
TIME 1638134496.1029
VALUE ---
Status_WLAN_Verbindung:
logdb:
TIME 1638134496.1029
VALUE 303
Status_Zustand:
logdb:
TIME 1638134496.1029
VALUE Ok
Status_verbundenes_Fahrzeug:
logdb:
TIME 1638134496.1029
VALUE Ok
Verschiebungsfaktor:
logdb:
TIME 1638167428.62119
VALUE 1
Zaehlerstand_Bezugszaehler:
logdb:
TIME 1638167428.62119
VALUE 295650
Zaehlerstand_Ladestation:
logdb:
TIME 1638167428.62119
VALUE 295650
evccEnabled:
logdb:
TIME 1638134496.1029
VALUE 1
evccStatus:
logdb:
TIME 1638167428.62119
VALUE A
evccStromP123:
logdb:
TIME 1638167428.62119
VALUE 0
state:
logdb:
TIME 1639106885.50367
VALUE Data retrieved
READINGS:
2021-11-29 07:25:29 Anzahl_Ladevorgaenge 1
2021-12-12 16:27:04 Blindleistung 0
2021-12-12 16:27:04 Energie_Ladevorgang 0
2021-12-12 16:27:04 Leistung_Bezug 0
2021-12-12 16:27:04 Leistung_Ladestation 0
2021-12-12 16:27:04 Netzfrequenz 50.01
2021-12-12 16:27:04 Netzspannung_Phase_L1 240.9
2021-12-12 16:27:04 Netzspannung_Phase_L2 240.2
2021-12-12 16:27:04 Netzspannung_Phase_L3 239.8
2021-12-12 16:27:04 Netzstrom_Phase_L1 0
2021-12-12 16:27:04 Netzstrom_Phase_L2 0
2021-12-12 16:27:04 Netzstrom_Phase_L3 0
2021-12-12 16:27:04 Param_Bemessungswirkleistung_WMaxInRtg 22000
2021-12-12 16:27:04 Param_Betrieb_mit_Netzanschlusspunktzaehler ja
2021-12-12 16:27:04 Param_Betriebsart_Ladevorgang Schnellladen
2021-12-12 16:27:04 Param_Dauer_Ladevorgang 0
2021-12-12 16:27:04 Param_Ende_Ladevorgang 2021-11-28 22:10:38
2021-12-12 16:27:04 Param_Energiemenge_Ladevorgang 0
2021-12-12 16:27:04 Param_Fallback_Wirkleistungsbegrenzung 0
2021-12-12 16:27:04 Param_Geraetename SMA EV CHARGER 22
2021-12-12 16:27:04 Param_Ladebereitschaft_bis_Trennung 15
2021-12-12 16:27:04 Param_Maximale_Schieflast 4600
2021-12-12 16:27:04 Param_Minimale_Schaltdauer_Relais 120
2021-12-12 16:27:04 Param_Minimaler_Ladestrom 6
2021-12-12 16:27:04 Param_Nennstrom_Netzanschluss 32
2021-12-12 16:27:04 Param_Nennstrom_alle_Phasen 32
2021-12-12 16:27:04 Param_Nennwirkleistung_WMaxIn 22000
2021-12-12 16:27:04 Param_Nennwirkleistung_WMaxOut 22000
2021-12-12 16:27:04 Param_Netz_Nennspannung 230
2021-12-12 16:27:04 Param_Trennung_nach_Vollladung nein
2021-12-12 16:27:04 Schalterstellung_Drehschalter Schnellladen
2021-12-12 16:27:04 Scheinleistung 0
2021-12-12 16:27:04 Schnellabschaltung 1467
2021-12-12 16:27:04 Signalstaerke_Netzwerk 0
2021-12-12 16:27:04 Startzeit_Verbindung nicht verbunden
2021-12-12 16:27:04 Status_Ladevorgang nicht verbunden
2021-12-12 16:27:04 Status_Meldung ---
2021-12-12 16:27:04 Status_WLAN_Verbindung 303
2021-12-12 16:27:04 Status_Zustand Ok
2021-12-12 16:27:04 Status_verbundenes_Fahrzeug Ok
2021-12-12 16:27:04 Verschiebungsfaktor 1
2021-12-12 16:27:04 Zaehlerstand_Bezugszaehler 295650
2021-12-12 16:27:04 Zaehlerstand_Ladestation 295650
2021-11-28 22:21:36 evccEnabled 1
2021-11-29 07:30:28 evccStatus A
2021-11-29 07:30:28 evccStromP123 0
2021-12-12 16:27:04 state Data retrieved
Attributes:
DbLogInclude .*
comment set SMAEVCharger Param_Energiemenge_Ladevorgang 10;
set SMAEVCharger Param_Dauer_Ladevorgang 120;
set SMAEVCharger Param_Betriebsart_Ladevorgang Laden_mit_Vorgabe;
## mqttSubscribe ## Param_Betriebsart_Ladevorgang:stopic={"$base"."enable"}
## Param_Betriebsart_Ladevorgang:expression={
## $value=($message eq "false" ? "Ladestopp" : "Optimiertes_Laden")
##}
detail-level 1
disable 0
event-on-change-reading Netzspannung_Phase_L.*:1,.*
group Solar
mqttDefaults base={"hlathome/$device/"}
mqttForward none
mqttPublish evccEnabled|evccStatus|Leistung_Ladestation|evccStromP123:topic={"$base"."$name"} *:qos=1 *:retain=1
room Aussen,Remote,Solar
setting-level 1
stateFormat Status_Ladevorgang
userReadings evccEnabled:Param_Betriebsart_Ladevorgang.* {
(ReadingsVal("$name","Status_Ladevorgang","Ladestopp") eq "Ladevorgang aktiv" ? "1":"0")
},
evccStatus:Status_Ladevorgang.* {
my $fhemstatus= ReadingsVal("$name","Status_Ladevorgang","nicht verbunden");
my $retval="A"; ## EVCC Status für not connected
if ($fhemstatus eq "verbunden") {$retval="B"} ## connected aber nicht ladend
elsif ($fhemstatus eq "Ladevorgang aktiv") {$retval="C"} ## ladend
return $retval;
},
evccStromP123:Netzstrom_Phase_.* {
ReadingsVal("$name","Netzstrom_Phase_L1",0)+
ReadingsVal("$name","Netzstrom_Phase_L2",0)+
ReadingsVal("$name","Netzstrom_Phase_L3",0)
}
userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
verbose 2
So jetzt habe ich noch auf verbose 5 gestellt. Scroll mal bitte ein paar Zeilen runter, da ist eine Zeile mit WLAN, unmittelbar da taucht auch die Exception auf. Das würde ja Deine Vermutung mit dem WLAN nähren. Mein Wall Charger ist per Ethernet verbunden, nicht über Wifi.
6:39:04 4: SMAEVCharger - Loop Params update done
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.MinSwTms Reading:Param_Minimale_Schaltdauer_Relais Wert:120
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=0 max=600
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:3342; 302
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129; 1130
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.StpWhenFlTm Reading:Param_Ladebereitschaft_bis_Trennung Wert:15
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=5 max=1440
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.StpWhenFl Reading:Param_Trennung_nach_Vollladung Wert:1130
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129; 1130
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129; 1130
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:461
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:302; 1146
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.Plan.DurTmm Reading:Param_Dauer_Ladevorgang Wert:0
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Inverter.WMax Reading:Param_Nennwirkleistung_WMaxOut Wert:22000
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=1380 max=22000
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Nameplate.ARtg Reading:Param_Nennstrom_alle_Phasen Wert:32
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=32 max=32
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=200 max=60000
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.PCC.WMaxAsym Reading:Param_Maximale_Schieflast Wert:4600
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=0 max=10000
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.GridGuard.Cntry.VRtg Reading:Param_Netz_Nennspannung Wert:230
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=210 max=260
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Inverter.WMaxIn Reading:Param_Nennwirkleistung_WMaxIn Wert:22000
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=1380 max=22000
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:302; 1146
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.Plan.StopTm Reading:Param_Ende_Ladevorgang Wert:1638133838
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.UseEnergyMeter Reading:Param_Betrieb_mit_Netzanschlusspunktzaehler Wert:1129
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129; 1130
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:303; 4478; 4479
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.ActChaMod Reading:Param_Betriebsart_Ladevorgang Wert:4718
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:4718; 4721
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129; 1130
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Inverter.WMaxInRtg Reading:Param_Bemessungswirkleistung_WMaxInRtg Wert:22000
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:1129
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.PCC.FlbInv.WMax Reading:Param_Fallback_Wirkleistungsbegrenzung Wert:0
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=0 max=22000
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.PCC.ARtg Reading:Param_Nennstrom_Netzanschluss Wert:32
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=0 max=100
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:8008
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.Plan.En Reading:Param_Energiemenge_Ladevorgang Wert:0
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:326
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Chrg.AMinCha Reading:Param_Minimaler_Ladestrom Wert:6
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=6 max=32
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:3321; 302
2021.12.12 16:39:04 5: SMAEVCharger - Readings Update:Parameter.Nameplate.Location Reading:Param_Geraetename Wert:SMA EV CHARGER 22
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:9484
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values: min=11 max=31744
2021.12.12 16:39:04 4: SMAEVCharger - Readings Update possible Values:3323; 3324; 3398
2021.12.12 16:39:04 4: SMAEVCharger - Loop Readings update done
2021.12.12 16:39:04 5: SMAEVCharger - Livedata:Setpoint.PlantControl.Inverter.FstStop Reading:Schnellabschaltung Wert:1467
2021.12.12 16:39:04 5: SMAEVCharger - Livedata:Measurement.Wl.SigPwr Reading:Signalstaerke_Netzwerk Wert:0
2021.12.12 16:39:04 5: SMAEVCharger - Livedata:Measurement.Wl.ConnStt Reading:Status_WLAN_Verbindung Wert:303
2021.12.12 16:39:04 1: main::CallFn called by fhem.pl (773)
2021.12.12 16:39:04 1: main::telnet_Read called by fhem.pl (3895)
2021.12.12 16:39:04 1: main::AnalyzeCommandChain called by ./FHEM/98_telnet.pm (256)
2021.12.12 16:39:04 1: main::AnalyzeCommand called by fhem.pl (1116)
2021.12.12 16:39:04 1: main::AnalyzePerlCommand called by fhem.pl (1189)
2021.12.12 16:39:04 1: (eval) called by fhem.pl (1160)
2021.12.12 16:39:04 1: main::SMAEVCharger_Done called by (eval 80489959) (1)
2021.12.12 16:39:04 1: main::SMAEVCharger_handledata called by ./FHEM/76_SMAEVCharger.pm (971)
2021.12.12 16:39:04 1: main::SMAEVCharger_getReadableCode called by ./FHEM/76_SMAEVCharger.pm (826)
2021.12.12 16:39:04 1: main::__ANON__ called by ./FHEM/76_SMAEVCharger.pm (124)
2021.12.12 16:39:04 1: stacktrace:
2021.12.12 16:39:04 1: eval: {SMAEVCharger_Done('SMAEVCharger|1|bm9kZTBodmloaG9ib2N4cjVyMWhveWI4MmhvZDcxMjU0Lm5vZGUwfGV5SmhiR2NpT2lKSVV6STFOaUo5LmV5SnBZWFFpT2pFMk16a3pNakkxTWpJc0luTjFZaUk2SWtoTVlYUkliMjFsVTAxQlEyaGhjbWRsY2lJc0luVnBaQ0k2SW1JMk5HVTVNemd5TFdZNU9UWXRORE16TXkwNE5qUTFMV1l4WWprek0yWXpNR0k1WmlJc0ltVjRjQ0k2TVRZek9UTXlOakV5TW4wLmpyaFhlWFdhRndUcTJyM2RrVUR5SnZ5Sk5xOE0zeVdFUl9ETUo2M3JOZGt8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTXprek1qSTFNaklzSW5OMVlpSTZJa2hNWVhSSWIyMWxVMDFCUTJoaGNtZGxjaUlzSW5WcFpDSTZJbUkyTkdVNU16Z3lMV1k1T1RZdE5ETXpNeTA0TmpRMUxXWXhZamt6TTJZek1HSTVaaUlzSW1WNGNDSTZNVFl6T1RRd09Ea3lNaXdpZEhsd1pTSTZJbkpsWm5KbGMyZ2lmUS5QZERTRGtNbjR6R3dUYmFlN0RqSkNtd25waWFBOHNpN2lBMlVoZWxLaTJrfDE2MzkzMjYxMjI=|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMS0yOVQwNjoyOTo0Mi4zMDBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5DaHJnLk1vZFN3IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMS0yN1QxMjowNzo1My4xMjdaIiwidmFsdWUiOjQ3MTh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozOTowMy4zMjhaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozOTowMy4zMjlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozOTowMy4zMjlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MloiLCJ2YWx1ZSI6NDkuOTl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MFoiLCJ2YWx1ZSI6MjQwLjR9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0IiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MFoiLCJ2YWx1ZSI6MjQwLjl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0MiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MFoiLCJ2YWx1ZSI6MjM5Ljl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MloiLCJ2YWx1ZSI6MX1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzg6NTkuMjUyWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzg6NTkuMjUyWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToxNS41OTNaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozODo1OS4yNTJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzg6NTkuMjUyWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjE5OFoiLCJ2YWx1ZSI6Mjk1NjUwfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozODo1OS4xOThaIiwidmFsdWUiOjI5NTY1MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzk6MDMuMjQ1WiIsInZhbHVlIjoyMDAxMTF9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEwLTA1VDAyOjM2OjQ5Ljk0N1oiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTExLTI5VDA2OjI5OjQyLjMzMloiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTEtMjlUMDY6Mjk6NDIuMzMyWiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbU5vbSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjE5NzAtMDEtMDFUMDA6MDA6MDAuOTczWiJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTAtMDVUMDI6MzQ6NTcuNTkyWiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQ29ublN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTAtMDVUMDI6MzU6MjcuMDQ4WiIsInZhbHVlIjozMDN9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5TaWdQd3IiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEwLTA1VDAyOjM1OjI3LjA2OVoiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNvZnRBY3NDb25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToyNi45MDJaIiwidmFsdWUiOjMwOH1dfSx7ImNoYW5uZWxJZCI6IlNldHBvaW50LlBsYW50Q29udHJvbC5JbnZlcnRlci5Gc3RTdG9wIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToyNC4yMzNaIiwidmFsdWUiOjE0Njd9XX1dfFt7ImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3siY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5Td1JldlR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEyLTEyVDE1OjM4OjU0LjM5OVoiLCJ2YWx1ZSI6IlNBLTAxLjAzLjI2In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLkNyeSIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIzIiwiMzMyNCIsIjMzOTgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljc3N1oiLCJ2YWx1ZSI6IjMzOTgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5Id1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0NFoiLCJ2YWx1ZSI6IlI1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVRtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjMxNzQ0LCJtaW4iOjExLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuMzQyWiIsInZhbHVlIjoiMTI1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1vZGVsIiwiZWRpdGFibGUiOmZhbHNlLCJwb3NzaWJsZVZhbHVlcyI6WyI5NDg0Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44MzhaIiwidmFsdWUiOiI5NDg0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkxvY2F0aW9uIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxNi42NDRaIiwidmFsdWUiOiJTTUEgRVYgQ0hBUkdFUiAyMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlN1c3lJZCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjQyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkRvV1BTIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjEiLCIzMDIiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljk5MVoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxEbnNTcnZJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFNaW5DaGEiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjozMiwibWluIjo2LCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiNiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkludmVydGVyLk91dFBocyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMjYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjMyNiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5FbiIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MTA6MzguMzkzWiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjIxLjg1OFoiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTYuNjQxWiIsInZhbHVlIjoiMS4xLjM0LlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyOFoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi43NDZaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yMFQwMDoxMDoxMi4yMjdaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjAuNDA5WiIsInZhbHVlIjoiMzAxMjAyMDY1MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4LjgzN1oiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjEuODU4WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE2LjQ0OVoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44MzhaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjEuODUxWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI3WiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI3WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE4IiwiNDcyMSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MTA6MzguMzkzWiIsInZhbHVlIjoiNDcxOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLklnbXBRcnlUeCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDMiLCI0NDc4IiwiNDQ3OSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuMzQxWiIsInZhbHVlIjoiNDQ3OSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlJldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0NloiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsSXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yMFQwMDoxMDoxMi4yMjdaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xNTIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlVzZUVuZXJneU1ldGVyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTYuMDg5WiIsInZhbHVlIjoiMzAxMTg4MzAzMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5TdG9wVG0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjEwOjM4WiIsInZhbHVlIjoiMTYzODEzMzgzOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjQ2LjExOVoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0MVoiLCJ2YWx1ZSI6IjEuNC4zIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjIyMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljc0M1oiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjIyMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEyLTEyVDE1OjM4OjU0LjM4N1oiLCJ2YWx1ZSI6IjAwMDAwMDI4Nzk1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNy4wNjlaIiwidmFsdWUiOiI1ODpENTowQTo5QTozRDpCNyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjEwOjM4LjM5NFoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXZhbENoa0lzdGwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzAyIiwiMTE0NiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuNzgyWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLlZlbmRvciIsImVkaXRhYmxlIjpmYWxzZSwicG9zc2libGVWYWx1ZXMiOlsiNDYxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44NjdaIiwidmFsdWUiOiI0NjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Jc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi44NDJaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQXV0b0NmZ0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI4WiIsInZhbHVlIjoiMTEyOSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bERuc1NydklwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI4WiIsInZhbHVlIjoiMTcyLjIyLjAuMyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsVG0iLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoxNDQwLCJtaW4iOjUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLlNvZnRBY3NJc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi44NDRaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuRG9BY3EiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzM0MiIsIjMwMiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjYuNjYzWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5NaW5Td1RtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjYwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMTIwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1hY0lkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjAuNDEwWiIsInZhbHVlIjoiMDA6MTU6QkI6MDM6MzA6RjYifV19XQ==')}
2021.12.12 16:39:04 1: PERL WARNING: Use of uninitialized value $code in string eq at ./FHEM/76_SMAEVCharger.pm line 124.
2021.12.12 16:39:04 1: main::CallFn called by fhem.pl (773)
2021.12.12 16:39:04 1: main::telnet_Read called by fhem.pl (3895)
2021.12.12 16:39:04 1: main::AnalyzeCommandChain called by ./FHEM/98_telnet.pm (256)
2021.12.12 16:39:04 1: main::AnalyzeCommand called by fhem.pl (1116)
2021.12.12 16:39:04 1: main::AnalyzePerlCommand called by fhem.pl (1189)
2021.12.12 16:39:04 1: (eval) called by fhem.pl (1160)
2021.12.12 16:39:04 1: main::SMAEVCharger_Done called by (eval 80489959) (1)
2021.12.12 16:39:04 1: main::SMAEVCharger_handledata called by ./FHEM/76_SMAEVCharger.pm (971)
2021.12.12 16:39:04 1: main::SMAEVCharger_getReadableCode called by ./FHEM/76_SMAEVCharger.pm (826)
2021.12.12 16:39:04 1: main::__ANON__ called by ./FHEM/76_SMAEVCharger.pm (124)
2021.12.12 16:39:04 1: stacktrace:
2021.12.12 16:39:04 1: eval: {SMAEVCharger_Done('SMAEVCharger|1|bm9kZTBodmloaG9ib2N4cjVyMWhveWI4MmhvZDcxMjU0Lm5vZGUwfGV5SmhiR2NpT2lKSVV6STFOaUo5LmV5SnBZWFFpT2pFMk16a3pNakkxTWpJc0luTjFZaUk2SWtoTVlYUkliMjFsVTAxQlEyaGhjbWRsY2lJc0luVnBaQ0k2SW1JMk5HVTVNemd5TFdZNU9UWXRORE16TXkwNE5qUTFMV1l4WWprek0yWXpNR0k1WmlJc0ltVjRjQ0k2TVRZek9UTXlOakV5TW4wLmpyaFhlWFdhRndUcTJyM2RrVUR5SnZ5Sk5xOE0zeVdFUl9ETUo2M3JOZGt8ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKcFlYUWlPakUyTXprek1qSTFNaklzSW5OMVlpSTZJa2hNWVhSSWIyMWxVMDFCUTJoaGNtZGxjaUlzSW5WcFpDSTZJbUkyTkdVNU16Z3lMV1k1T1RZdE5ETXpNeTA0TmpRMUxXWXhZamt6TTJZek1HSTVaaUlzSW1WNGNDSTZNVFl6T1RRd09Ea3lNaXdpZEhsd1pTSTZJbkpsWm5KbGMyZ2lmUS5QZERTRGtNbjR6R3dUYmFlN0RqSkNtd25waWFBOHNpN2lBMlVoZWxLaTJrfDE2MzkzMjYxMjI=|W3siY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuQ2hhU2Vzcy5XaEluIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMS0yOVQwNjoyOTo0Mi4zMDBaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5DaHJnLk1vZFN3IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMS0yN1QxMjowNzo1My4xMjdaIiwidmFsdWUiOjQ3MTh9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNBIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozOTowMy4zMjhaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNCIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozOTowMy4zMjlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuQS5waHNDIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozOTowMy4zMjlaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuSHoiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MloiLCJ2YWx1ZSI6NDkuOTl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0EiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MFoiLCJ2YWx1ZSI6MjQwLjR9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0IiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MFoiLCJ2YWx1ZSI6MjQwLjl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuUGhWLnBoc0MiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MFoiLCJ2YWx1ZSI6MjM5Ljl9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5HcmlkTXMuVG90UEYiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjI1MloiLCJ2YWx1ZSI6MX1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LkdyaWRNcy5Ub3RWQSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzg6NTkuMjUyWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuR3JpZE1zLlRvdFZBciIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzg6NTkuMjUyWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuSW5PdXQuR0kxIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToxNS41OTNaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozODo1OS4yNTJaIiwidmFsdWUiOjB9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5NZXRlcmluZy5HcmlkTXMuVG90V0luLkNoYVN0YSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzg6NTkuMjUyWiIsInZhbHVlIjowfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4iLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEyLTEyVDE1OjM4OjU5LjE5OFoiLCJ2YWx1ZSI6Mjk1NjUwfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuTWV0ZXJpbmcuR3JpZE1zLlRvdFdoSW4uQ2hhU3RhIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMi0xMlQxNTozODo1OS4xOThaIiwidmFsdWUiOjI5NTY1MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50Lk9wZXJhdGlvbi5FVmVoLkNoYVN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTItMTJUMTU6Mzk6MDMuMjQ1WiIsInZhbHVlIjoyMDAxMTF9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uRVZlaC5IZWFsdGgiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEwLTA1VDAyOjM2OjQ5Ljk0N1oiLCJ2YWx1ZSI6MzA3fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkV2dC5Nc2ciLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTExLTI5VDA2OjI5OjQyLjMzMloiLCJ2YWx1ZSI6MzAyfV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuT3BlcmF0aW9uLkhlYWx0aCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTEtMjlUMDY6Mjk6NDIuMzMyWiIsInZhbHVlIjozMDd9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbU5vbSIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjE5NzAtMDEtMDFUMDA6MDA6MDAuOTczWiJ9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5PcGVyYXRpb24uV01heExpbVNyYyIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTAtMDVUMDI6MzQ6NTcuNTkyWiIsInZhbHVlIjoyNjA4fV19LHsiY2hhbm5lbElkIjoiTWVhc3VyZW1lbnQuV2wuQ29ublN0dCIsImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3sidGltZSI6IjIwMjEtMTAtMDVUMDI6MzU6MjcuMDQ4WiIsInZhbHVlIjozMDN9XX0seyJjaGFubmVsSWQiOiJNZWFzdXJlbWVudC5XbC5TaWdQd3IiLCJjb21wb25lbnRJZCI6IklHVUxEOlNFTEYiLCJ2YWx1ZXMiOlt7InRpbWUiOiIyMDIxLTEwLTA1VDAyOjM1OjI3LjA2OVoiLCJ2YWx1ZSI6MH1dfSx7ImNoYW5uZWxJZCI6Ik1lYXN1cmVtZW50LldsLlNvZnRBY3NDb25uU3R0IiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToyNi45MDJaIiwidmFsdWUiOjMwOH1dfSx7ImNoYW5uZWxJZCI6IlNldHBvaW50LlBsYW50Q29udHJvbC5JbnZlcnRlci5Gc3RTdG9wIiwiY29tcG9uZW50SWQiOiJJR1VMRDpTRUxGIiwidmFsdWVzIjpbeyJ0aW1lIjoiMjAyMS0xMC0wNVQwMjozNToyNC4yMzNaIiwidmFsdWUiOjE0Njd9XX1dfFt7ImNvbXBvbmVudElkIjoiSUdVTEQ6U0VMRiIsInZhbHVlcyI6W3siY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5Td1JldlR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEyLTEyVDE1OjM4OjU0LjM5OVoiLCJ2YWx1ZSI6IlNBLTAxLjAzLjI2In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLkNyeSIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMzIzIiwiMzMyNCIsIjMzOTgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljc3N1oiLCJ2YWx1ZSI6IjMzOTgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ21wTWFpbi5Id1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0NFoiLCJ2YWx1ZSI6IlI1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuU3Bkd3IuSWdtcFFyeVRtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjMxNzQ0LCJtaW4iOjExLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuMzQyWiIsInZhbHVlIjoiMTI1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1vZGVsIiwiZWRpdGFibGUiOmZhbHNlLCJwb3NzaWJsZVZhbHVlcyI6WyI5NDg0Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44MzhaIiwidmFsdWUiOiI5NDg0In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkxvY2F0aW9uIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxNi42NDRaIiwidmFsdWUiOiJTTUEgRVYgQ0hBUkdFUiAyMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlN1c3lJZCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjQyNCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkRvV1BTIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMzMjEiLCIzMDIiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljk5MVoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLkFjdGxEbnNTcnZJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFNaW5DaGEiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjozMiwibWluIjo2LCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiNiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkludmVydGVyLk91dFBocyIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMjYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjMyNiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5FbiIsImVkaXRhYmxlIjp0cnVlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MTA6MzguMzkzWiIsInZhbHVlIjoiMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5NYWluTW9kZWwiLCJlZGl0YWJsZSI6ZmFsc2UsInBvc3NpYmxlVmFsdWVzIjpbIjgwMDgiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjIxLjg1OFoiLCJ2YWx1ZSI6IjgwMDgifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuUGtnUmV2IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTYuNjQxWiIsInZhbHVlIjoiMS4xLjM0LlIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5QQ0MuQVJ0ZyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjEwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyOFoiLCJ2YWx1ZSI6IjE3Mi4yMi4wLjMifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5TZWMuUHNrIiwiZWRpdGFibGUiOnRydWUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi43NDZaIiwidmFsdWUiOiIqKioqIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLkZsYkludi5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BdXRvQ2ZnSXNPbiIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIxMTI5Il0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yMFQwMDoxMDoxMi4yMjdaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMjIwMDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjAuNDA5WiIsInZhbHVlIjoiMzAxMjAyMDY1MSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN3Q21wLkNtcEVubmV4T1MuRnJ3ay5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4LjgzN1oiLCJ2YWx1ZSI6IjEuMTUuMCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DaHJnQ3RybC5DaHJnVHlwVHh0IiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjEuODU4WiIsInZhbHVlIjoid2FsbGJlIFNtYXJ0IENoYXJnZSBDb250cm9sIDI3OTEuMDQifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsU25ldE1zayIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjI1NS4yNTUuMjU1LjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXV0b1VwZElzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSIsIjExMzAiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE2LjQ0OVoiLCJ2YWx1ZSI6IjExMjkifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuTW9kZWxTdHIiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44MzhaIiwidmFsdWUiOiJFVkMyMi0zQUMtMTAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5OYW1lcGxhdGUuQ2hyZ0N0cmwuU3VzeUlkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjEuODUxWiIsInZhbHVlIjoiNDI4In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bElwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI3WiIsInZhbHVlIjoiMTcyLjIyLjAuMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLkFjdGxTbmV0TXNrIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI3WiIsInZhbHVlIjoiMjU1LjI1NS4wLjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLkFjdENoYU1vZCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyI0NzE4IiwiNDcyMSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MTA6MzguMzkzWiIsInZhbHVlIjoiNDcxOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlNwZHdyLklnbXBRcnlUeCIsImVkaXRhYmxlIjp0cnVlLCJwb3NzaWJsZVZhbHVlcyI6WyIzMDMiLCI0NDc4IiwiNDQ3OSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuMzQxWiIsInZhbHVlIjoiNDQ3OSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBNYWluLlJldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0NloiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsR3dJcCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTIwVDAwOjEwOjEyLjIyN1oiLCJ2YWx1ZSI6IjE5Mi4xNjguMTc4LjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5TcGR3ci5BY3RsSXAiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yMFQwMDoxMDoxMi4yMjdaIiwidmFsdWUiOiIxOTIuMTY4LjE3OC4xNTIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5DaHJnLlVzZUVuZXJneU1ldGVyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNtcE1haW4uU2VyTnVtIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTYuMDg5WiIsInZhbHVlIjoiMzAxMTg4MzAzMSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5TdG9wVG0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjEwOjM4WiIsInZhbHVlIjoiMTYzODEzMzgzOCJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLlN5cy5EZXZSc3RyIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjMwMiIsIjExNDYiXSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjQ2LjExOVoiLCJ2YWx1ZSI6IjMwMiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5DbXBPUy5Td1JldiIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjE4Ljg0MVoiLCJ2YWx1ZSI6IjEuNC4zIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuSW52ZXJ0ZXIuV01heEluIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjIyMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuR3JpZEd1YXJkLkNudHJ5LlZSdGciLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoyNjAsIm1pbiI6MjEwLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMjMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuUENDLldNYXhBc3ltIiwiZWRpdGFibGUiOnRydWUsIm1heCI6MTAwMDAsIm1pbiI6MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjQ2MDAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5PcGVyYXRpb24uQ29tVG1PdXQiLCJlZGl0YWJsZSI6dHJ1ZSwibWF4Ijo2MDAwMCwibWluIjoyMDAsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiI1MDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuU2VjLlNzaWQiLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEwLTA1VDAyOjM1OjI2Ljc0M1oiLCJ2YWx1ZSI6IiJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLk5hbWVwbGF0ZS5BUnRnIiwiZWRpdGFibGUiOmZhbHNlLCJtYXgiOjMyLCJtaW4iOjMyLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMzIifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5JbnZlcnRlci5XTWF4IiwiZWRpdGFibGUiOnRydWUsIm1heCI6MjIwMDAsIm1pbiI6MTM4MCwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjIyOjMzLjU4OVoiLCJ2YWx1ZSI6IjIyMDAwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLkNocmdDdHJsLlNlck51bVR4dCIsImVkaXRhYmxlIjpmYWxzZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTEyLTEyVDE1OjM4OjU0LjM4N1oiLCJ2YWx1ZSI6IjAwMDAwMDI4Nzk1In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLldsTWFjSWQiLCJlZGl0YWJsZSI6ZmFsc2UsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNy4wNjlaIiwidmFsdWUiOiI1ODpENTowQTo5QTozRDpCNyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuUGxhbi5EdXJUbW0iLCJlZGl0YWJsZSI6dHJ1ZSwic3RhdGUiOiJDb25maXJtZWQiLCJ0aW1lc3RhbXAiOiIyMDIxLTExLTI4VDIxOjEwOjM4LjM5NFoiLCJ2YWx1ZSI6IjAifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5VcGQuQXZhbENoa0lzdGwiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzAyIiwiMTE0NiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MTUuNzgyWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLlZlbmRvciIsImVkaXRhYmxlIjpmYWxzZSwicG9zc2libGVWYWx1ZXMiOlsiNDYxIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToxOC44NjdaIiwidmFsdWUiOiI0NjEifSx7ImNoYW5uZWxJZCI6IlBhcmFtZXRlci5XbC5Jc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi44NDJaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQXV0b0NmZ0lzT24iLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMTEyOSJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI4WiIsInZhbHVlIjoiMTEyOSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxMTMwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuQWN0bERuc1NydklwIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjBUMDA6MTA6MTIuMjI4WiIsInZhbHVlIjoiMTcyLjIyLjAuMyJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLkNocmcuU3RwV2hlbkZsVG0iLCJlZGl0YWJsZSI6dHJ1ZSwibWF4IjoxNDQwLCJtaW4iOjUsInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMS0yOFQyMToyMjozMy41ODlaIiwidmFsdWUiOiIxNSJ9LHsiY2hhbm5lbElkIjoiUGFyYW1ldGVyLldsLlNvZnRBY3NJc09uIiwiZWRpdGFibGUiOnRydWUsInBvc3NpYmxlVmFsdWVzIjpbIjExMjkiLCIxMTMwIl0sInN0YXRlIjoiQ29uZmlybWVkIiwidGltZXN0YW1wIjoiMjAyMS0xMC0wNVQwMjozNToyNi44NDRaIiwidmFsdWUiOiIxMTI5In0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuV2wuRG9BY3EiLCJlZGl0YWJsZSI6dHJ1ZSwicG9zc2libGVWYWx1ZXMiOlsiMzM0MiIsIjMwMiJdLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjYuNjYzWiIsInZhbHVlIjoiMzAyIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuQ2hyZy5NaW5Td1RtcyIsImVkaXRhYmxlIjp0cnVlLCJtYXgiOjYwMCwibWluIjowLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTEtMjhUMjE6MjI6MzMuNTg5WiIsInZhbHVlIjoiMTIwIn0seyJjaGFubmVsSWQiOiJQYXJhbWV0ZXIuTmFtZXBsYXRlLk1hY0lkIiwiZWRpdGFibGUiOmZhbHNlLCJzdGF0ZSI6IkNvbmZpcm1lZCIsInRpbWVzdGFtcCI6IjIwMjEtMTAtMDVUMDI6MzU6MjAuNDEwWiIsInZhbHVlIjoiMDA6MTU6QkI6MDM6MzA6RjYifV19XQ==')}
2021.12.12 16:39:04 1: PERL WARNING: Use of uninitialized value $code in string eq at ./FHEM/76_SMAEVCharger.pm line 124.
2021.12.12 16:39:04 1: main::CallFn called by fhem.pl (773)
2021.12.12 16:39:04 1: main::telnet_Read called by fhem.pl (3895)
Entschuldigung dass ich nerve. Noch eine andere Sache. In der def wäre mir eigentlich sma3012020651.fritz.box lieber als Host. Es kommt diese Fehlermeldung. Argument:{sma3012020651.fritz.box} not accepted as Host or IP. Read device specific help file.
Du schreibst ja in der Commandref dass Du es mit Hostname noch nicht getestet hast. Ich denke ich kann feststellen: getestet und funktioniert nicht :-)
Neue Datei im zweiten Beitrag, welches den Fehler mit der undefinierten Variable "code" behebt.
Aktuell offene Punkte, die ich als nächstes angehe:
- Password verschlüsselt anzeigen
- Hostname statt IP-Adresse verwenden
Hallo Jual,
danke für die schnelle Reaktion. Update habe ich eingespielt, Fehler ist weg. Danke dass Du auch noch die anderen beiden Punkte adressierst, das ist für mich good to have aber nicht lebensnotwendig. Würdest Du in Erwägung ziehen, das Modul ins SVN einzustellen, das würde das updaten erleichtern. Aus meiner Anwendersicht ist der Reifegrad ja da.
Grüße
Eddy
Guten Morgen zusammen,
heute steht bei mir im Logfile:
Zitat
2021.12.22 20:15:22 1: PERL WARNING: Use of uninitialized value $head in pattern match (m//) at ./FHEM/76_SMAEVCharger.pm line 1195.
2021.12.22 20:15:22 1: PERL WARNING: Use of uninitialized value $code in numeric ne (!=) at ./FHEM/76_SMAEVCharger.pm line 1205.
2021.12.22 20:15:25 1: PERL WARNING: Use of uninitialized value $head in pattern match (m//) at ./FHEM/76_SMAEVCharger.pm line 1215.
2021.12.22 20:15:25 1: PERL WARNING: Use of uninitialized value $head in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 1217.
2021.12.22 20:15:25 1: PERL WARNING: Use of uninitialized value $body in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 1218.
2021.12.22 20:15:25 1: PERL WARNING: Use of uninitialized value $code in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 1219.
2021.12.22 20:16:04 1: PERL WARNING: Use of uninitialized value $head in pattern match (m//) at ./FHEM/76_SMAEVCharger.pm line 1215.
2021.12.22 20:16:04 1: PERL WARNING: Use of uninitialized value $head in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 1217.
2021.12.22 20:16:04 1: PERL WARNING: Use of uninitialized value $body in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 1218.
2021.12.22 20:16:04 1: PERL WARNING: Use of uninitialized value $code in concatenation (.) or string at ./FHEM/76_SMAEVCharger.pm line 1219.
Es wurde meinerseits nichts geändert. Könnte es sein, dass SMA eine neue Firmware aufgespielt hat?
In meinem Fall wird mir die
Version 1.1.35.R (f0949f5ce) angezeigt
Danke für den Hinweis. Ich habe bei mir im Log auch die Warnungen gefunden und gehe davon aus, dass dies mit dem Update von SMA zu tun hatte. Ich schaue es mir an und werde an wahrscheinlich einfach entsprechende Prüfungen einbauen. Da es bisher nur einmal aufgetreten ist, wird es evtl. schwierig sein, festzustellen, woran es konkret gelegen hat.
Ich freue mich auf ein Update von Dir demnächst.
@ SMA: Leider konnte ich nichts zu den Release Notes der neuen Version finden.
Ich warte immer noch auf das "Zum Ende des Jahres" zugesagte Update, womit man (z.B.) die Wallbox per App gegen Fremdzugriff sperren kann.
Hallo Leute,
ich bin ein schlechter Hobbyprogrammierer und habe mir gerade Node-RED "draufgeschafft" und kann nun mit meinem RaspberryPi 2 die Daten meines SMA Wechselrichters über eine Dashboard anzeigen. Das ganze habe ich aber nur angefangen weil ich eigentlich den Ladevorgang über den EV-Charger "genauer" beobachten wollte. Die SMA Energy App ist ja etwas träge und kann mich auch nicht benachrichtigen wenn der Ladevorgang mal abgebrochen wurde. Für den EV-Charger gibt es aber (nach meinem Kenntnisstand) keine "einfache" Lösung das mit Node-RED umzusetzen.
Jetzt lese ich gerade diesen Beitrag und habe wieder Hoffnung!!!
Kann ich das was hier in diesem Beitrag beschrieben steht auch irgendwie mit meinem RaspberryPi und Node-RED nutzen?
Oder habe ich auf's falsche Pferd gesetzt und muss auf FHEM umsteigen?
Danke euch schon mal für eure hilfreichen Antworten!
Schöne Weihnachten!
Zitat von: fhemsmaevcharger am 23 Dezember 2021, 22:01:50
Kann ich das was hier in diesem Beitrag beschrieben steht auch irgendwie mit meinem RaspberryPi und Node-RED nutzen?
Oder habe ich auf's falsche Pferd gesetzt und muss auf FHEM umsteigen?
Mit Node-RED kenne ich mich leider nicht so aus. Im Prinzip müssen aber für den Zugriff auf die Wallbox nur entsprechende URL's aufgerufen werden, die dann die notwendigen Ergebnisse liefern. In meinem Modul habe ich aktuell Curl-Aufrufe dafür verwendet. Dort müsstest du eventuell fündig werden. Ansonsten habe ich nochmal meine ersten Versuche als Python-Script angehangen.
Hallo J.
danke dir!
Ich befürchte, ich bin damit aber immer noch überfordert...
Was ich in dem Python-Script erkennen kann ist folgendes:
Man ruft eine url auf und bekommt json-Daten als Antwort (oder wie das heisst...).
Das ist wie bei OpenWeatherMap (https://api.openweathermap.org/data/2.5/onecall?lat=33.441792&lon=-94.037689&exclude=hourly,daily&appid=14c19a733df61779fcbc09847dcee710 (https://api.openweathermap.org/data/2.5/onecall?lat=33.441792&lon=-94.037689&exclude=hourly,daily&appid=14c19a733df61779fcbc09847dcee710)).
Oder?
Und wenn man drin ist, kann man über http://192.xxx.xx.xx/api/v1/measurements/live/ die Livedaten lesen.
Aber das mit dem Login und Token ist mir zu hoch!
Könntest du hier im Forum die URL's für die Anmeldung und für das Lesen der Livedaten im Klartext mal schrieben (natürlich mit Platzhalter für die IP-Adresse und Login-Daten)?
Ich würde gerne mal sehen was ich aus der Wallbox herausholen kann?
Außerdem interessiert mich noch folgendes:
- Wie kommt man auf so etwas?
- Woher weiß man, dass die Wallbox über baseurl + '/api/v1/token/' einen Token ausspuckt?
- Und woher weiß man was man damit machen kann?
- Ist das schon hacken?
;-)
Die Curl-Aufrufe schau ich mir später noch an, sofern ich sie überhaupt finden kann...
Übrigens: FHEM läuft nun auf meinem Raspi2. Aber ich habe noch keine Ahnung wie ich damit nun irgendetwas zum Laufen bringe.
Werde mich wohl oder übel einlesen müssen...
Grüße
Thomas
Hallo Zusammen,
habe nun mal das neueste Modul 76_SMAEVCharger.pm ( 0.91 ) eingebunden und meine SMA-Wallbox (SMA EV CHARGER 22 / SW 1.1.35.R) als device angelegt.
Es passiert folgendes:
2021.12.27 23:51:00 3: Wallbox - ########## SMAEVCharger get all data ##########
2021.12.27 23:51:00 3: telnetForBlockingFn_1640645460: port 41099 opened
2021.12.27 23:51:01 3: Wallbox - Curl Response Error Code:400:
2021.12.27 23:51:01 3: Wallbox - Login failed
2021.12.27 23:51:01 3: Wallbox - Error retrieving data
2021.12.27 23:52:01 3: Wallbox - ########## SMAEVCharger get all data ##########
2021.12.27 23:52:02 3: Wallbox - Curl Response Error Code:400:
2021.12.27 23:52:02 3: Wallbox - Login failed
2021.12.27 23:52:02 3: Wallbox - Error retrieving data
und das noch 6 mal.
Was mache ich falsch?
Danke und Gruß
Thomas
Zitat von: fhemsmaevcharger am 28 Dezember 2021, 00:04:14
Hallo Zusammen,
habe nun mal das neueste Modul 76_SMAEVCharger.pm ( 0.91 ) eingebunden und meine SMA-Wallbox (SMA EV CHARGER 22 / SW 1.1.35.R) als device angelegt.
Es passiert folgendes:
2021.12.27 23:51:00 3: Wallbox - ########## SMAEVCharger get all data ##########
2021.12.27 23:51:00 3: telnetForBlockingFn_1640645460: port 41099 opened
2021.12.27 23:51:01 3: Wallbox - Curl Response Error Code:400:
2021.12.27 23:51:01 3: Wallbox - Login failed
2021.12.27 23:51:01 3: Wallbox - Error retrieving data
2021.12.27 23:52:01 3: Wallbox - ########## SMAEVCharger get all data ##########
2021.12.27 23:52:02 3: Wallbox - Curl Response Error Code:400:
2021.12.27 23:52:02 3: Wallbox - Login failed
2021.12.27 23:52:02 3: Wallbox - Error retrieving data
und das noch 6 mal.
Was mache ich falsch?
Danke und Gruß
Thomas
Da scheint etwas mit der URL nicht zu stimmen, mit der du auf die Wallbox zugreifst. Ist die IP-Adresse tatsächllich die Adresse, mit der du auch über den Browser auf die Wallbox zugreifen kannst? Im Prinzip solltest du die URL sowie User und Passwort nutzen, mit der du auch über den Browser auf die Wallbox kommst.
Ansonsten müsstest du mal das Attribut Verbose auf 5 setzen. Dann wird im Log jede Menge protokolliert.
Hallo J,
vielen Dank für deine Rückmeldung!
Die IP-Adresse war/ist korrekt.
Ich habe das Passwort geändert und es nochmal probiert.
Im DeviceOverview sieht es nun so aus:
DeviceOverview
WallboxProcess died prematurely
Internals
CFGFN
DEF 192.168.178.87 <user> <password>
FUUID 61cad6a1-f33f-95fa-30aa-0dfa43b00cb57a32
HOST 192.168.178.87
INTERVAL 60
LASTUPDATE 0
NAME Wallbox
NR 20
PASS <password>
STATE Process died prematurely
TYPE SMAEVCharger
USER ***
Readings
state Process died prematurely 2021-12-28 10:42:34
Der Zugriff auf die Wallbox scheint also nun prinzipiell zu funktionieren?
Oder deutet die Meldung "Process died prematurely" noch auf ein Problem hin?
Wenn nein: Wie kann ich nun z.B. die aktuelle Ladeleistung mit FHEM irgendwie sichtbar machen / im Browser anzeigen?
Hier noch der der Link zum logfile:
https://drive.google.com/file/d/1jttHHM6LJ5BVmfFzSy5qFQHTxg4_fAG6/view?usp=sharing (https://drive.google.com/file/d/1jttHHM6LJ5BVmfFzSy5qFQHTxg4_fAG6/view?usp=sharing)
Danke und Gruß
Thomas
Zitat von: fhemsmaevcharger am 28 Dezember 2021, 10:55:30
Ich habe das Passwort geändert und es nochmal probiert.
Im DeviceOverview sieht es nun so aus:
DeviceOverview
WallboxProcess died prematurely
Internals
CFGFN
DEF 192.168.178.87 <user> <password>
FUUID 61cad6a1-f33f-95fa-30aa-0dfa43b00cb57a32
HOST 192.168.178.87
INTERVAL 60
LASTUPDATE 0
NAME Wallbox
NR 20
PASS <password>
STATE Process died prematurely
TYPE SMAEVCharger
USER ***
Readings
state Process died prematurely 2021-12-28 10:42:34
Der Zugriff auf die Wallbox scheint also nun prinzipiell zu funktionieren?
Oder deutet die Meldung "Process died prematurely" noch auf ein Problem hin?
Wenn nein: Wie kann ich nun z.B. die aktuelle Ladeleistung mit FHEM irgendwie sichtbar machen / im Browser anzeigen?
Mir scheint, dass es bei dir leider noch ein paar Baustellen gibt. Zunächst bin ich verwundert, dass im Logfile bei den Blocking-Aufrufen immer das telnet-Modul erscheint. Das kann ich im Moment gar nicht deuten, was das bedeutet.
Hast du bei der Definition des Moduls tatsächlich deinen Usernamen und das Passwort eingetragen? In deinem Device steht ja als user "<user>" und als passwort "<password>". So kann das nicht funktionieren. Wundert mich nur, dass im Log keine entsprechende Fehlermeldung zu erkennen ist (Todo für mich).
Dann scheint es so, dass nicht alle Perl-Module auf dem raspi installiert sind. So fehlt beispielsweise die Funktion decode_json(). Also mal die Perl-Module nachinstallieren.
sudo apt-get install libjson-perl libjson-xs-perl
Wenn das alles erledigt ist, dann können wir mal weiterschauen, welche Probleme noch vorhanden sind.
Zitat von: jual am 28 Dezember 2021, 11:35:35
Mir scheint, dass es bei dir leider noch ein paar Baustellen gibt. Zunächst bin ich verwundert, dass im Logfile bei den Blocking-Aufrufen immer das telnet-Modul erscheint. Das kann ich im Moment gar nicht deuten, was das bedeutet.
Ich leider auch nicht...
Zitat
Hast du bei der Definition des Moduls tatsächlich deinen Usernamen und das Passwort eingetragen? In deinem Device steht ja als user "<user>" und als passwort "<password>". So kann das nicht funktionieren. Wundert mich nur, dass im Log keine entsprechende Fehlermeldung zu erkennen ist (Todo für mich).
Ich glaube nicht dass es da ein ToDo für dich gibt. Ich habe im logfile den Username und das Passwort über suche>ersetzen einfach geändert. Ich bin sicher, dass ich die korrekten Daten verwende (mehrfach gecheckt)!
Sorry, wegen der Verwirrung!
ZitatDann scheint es so, dass nicht alle Perl-Module auf dem raspi installiert sind. So fehlt beispielsweise die Funktion decode_json(). Also mal die Perl-Module nachinstallieren.
sudo apt-get install libjson-perl libjson-xs-perl
Ich hab das (nochmal) installiert. Es sah für mich aber so aus, als ob das schon vorhanden war...
ZitatWenn das alles erledigt ist, dann können wir mal weiterschauen, welche Probleme noch vorhanden sind.
Das würde mich freuen!!!
Außerdem:
Ich habe mittlerweile meinen SMA HomeManager in FHEM eingebunden.
Das hat zuerst nicht geklappt; vermutlich weil mein RasPi über einen WiFi-Dongle mit dem Netz verbunden war und dadurch die Multicast-Nachrichten vermutlich nicht sehen konnte.
=> Die Hardware/Vernetzung usw. müsste also grundsätzlich in Ordnung sein!
Hier noch ein Link zu einem neueren Logfile (inkl. "define SMAHM20 SMAEM" und "define Wallbox SMAEVCharger").
Bezüglich Wallbox ist der Status immer noch "died prematurely".
https://drive.google.com/file/d/1Uirn_lmDVCtqwBnmD0NvwxA3VaJTM4EH/view?usp=sharing (https://drive.google.com/file/d/1Uirn_lmDVCtqwBnmD0NvwxA3VaJTM4EH/view?usp=sharing)
Nochmals vielen Dank und Grüße
Thomas
Zitat von: fhemsmaevcharger am 30 Dezember 2021, 00:12:57
Hier noch ein Link zu einem neueren Logfile (inkl. "define SMAHM20 SMAEM" und "define Wallbox SMAEVCharger").
Bezüglich Wallbox ist der Status immer noch "died prematurely".
So, das mit dem User/Passwort hatte ich gehofft aber man weiuß ja nie ;-).
Eigentlich sieht das mit der Anmeldung zur Wallbox gar nicht so schlecht aus. Der Login scheint grundsätzlich zu funktionieren. Nur das Lesen der Daten gelingt tatsächlich noch nicht. Hier kommt immer noch die Fehlermeldung, dass "decode_json" nicht definiert ist.
Versuch mal folgendes in die Kommandozeile von fhem einzugeben. Dann müsste eigentlich ein Hashwert angezeigt werden:
{json_decode({})}
Ansonsten habe ich nochmal eine andere Beschreibung gefunden, was auf dem raspi installiert sein müsste:
sudo apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl
Guten Morgen jual!
Hier die Ergebnisse:
Vor dem Update:
>{json_decode({})}
=>Undefined subroutine &main::json_decode called at (eval 592) line 1.
Das Update selbst:
pi@raspberrypi:~ $ sudo apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Statusinformationen werden eingelesen... Fertig
libjson-perl ist schon die neueste Version (4.03000-1).
libjson-xs-perl ist schon die neueste Version (4.030-1+b1).
libwww-perl ist schon die neueste Version (6.52-1).
libwww-perl wurde als manuell installiert festgelegt.
Die folgenden zusätzlichen Pakete werden installiert:
libconvert-binhex-perl libio-sessiondata-perl libio-stringy-perl libmime-tools-perl libossp-uuid-perl libtask-weaken-perl
libxml-parser-perl libxmlrpc-lite-perl
Vorgeschlagene Pakete:
libapache2-mod-perl2 libmime-lite-perl libnet-jabber-perl
Die folgenden NEUEN Pakete werden installiert:
libconvert-binhex-perl libio-sessiondata-perl libio-stringy-perl libmime-tools-perl libossp-uuid-perl libsoap-lite-perl
libtask-weaken-perl libxml-parser-perl libxmlrpc-lite-perl
0 aktualisiert, 9 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
...
Nach dem Update:
>{json_decode({})}
Undefined subroutine &main::json_decode called at (eval 251) line 1.
Dann, den EVCharger neu eingebunden, liefert LEIDER wieder folgendes:
Internals:
CFGFN
DEF 192.168.178.87 <user> <password>
FUUID 61cd7f09-f33f-95fa-a9a9-a3032af9c91fd210
HOST 192.168.178.87
INTERVAL 60
LASTUPDATE 0
NAME mySMAEVCharger
NR 22
PASS <password>
STATE Process died prematurely
TYPE SMAEVCharger
USER <user>
HELPER:
ACCESS_TOKEN
BASEURL https://192.168.178.87
EXPIRE_TOKEN 0
INTERVAL 60
REFRESH_TOKEN
SESSIONID
RUNNING_PID:
abortFn SMAEVCharger_Aborted
arg mySMAEVCharger
bc_pid 4
finishFn SMAEVCharger_Done
fn SMAEVCharger_Run
loglevel 4
pid 8638
telnet telnetForBlockingFn_1640857340_127.0.0.1_42698
timeout 60
abortArg:
READINGS:
2021-12-30 10:43:20 state Process died prematurely
Attributes:
room all
verbose 5
Schade...
:'(
Vielleicht liegt das daran, dass du quasi eine sehr einfache FHEM-Umgebung nutzt und dass das die Bibliothek evetuell noch nicht eingebunden ist.
Habe gerade nochmal in meinen Code geschaut und festgestellt, dass vielleicht ein "use json" fehlt. Seltsam, dass es bei allen anderen läuft.
Bitte füge doch mal ganz oben in der Datei 76_SMAEVCharger.pm nachfolgende Zeile ein. Dort, wo auch die anderen "use-Befehle" sind:
use json;
Danach dann in FHEM ein reload 76_SMAEVCharger.pm ausführen. Besser wäre wahrscheinlich ein Neustart, sollte aber auch ohne eigentlich funktionieren.
Wenn das funktioniert, dann bau ich es bei mir in den Code und beim nächsten Update ist es dann mit drin.
Für alle zur Info. Habe mich jetzt für das SVN berechtigen lassen und werde hoffentlich am Wochenende dazu kommen, das Modul einzubinden, so dass ein Update zukünftig einfacher wird.
ZitatHabe gerade nochmal in meinen Code geschaut und festgestellt, dass vielleicht ein "use json" fehlt. Seltsam, dass es bei allen anderen läuft.
Solche Probleme kann man Nachstellen, indem man FHEM mit einer "nackten" fhem.cfg (d.h. nur mit "define xx SMAEVCharger") startet.
Hallo J,
nach dem ich "use json;" hinzugefügt habe passiert folgendes:
Can't locate json.pm in @INC (you may need to install the json module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/arm-linux-gnueabihf/perl5/5.32 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl ./FHEM/lib) at ./FHEM/76_SMAEVCharger.pm line 57.
BEGIN failed--compilation aborted at ./FHEM/76_SMAEVCharger.pm line 57.
Hilft die folgende Info noch?
pi@raspberrypi:~ $ find /usr/lib/arm-linux-gnueabihf/perl5 -iname '*json*'
/usr/lib/arm-linux-gnueabihf/perl5/5.32/JSON
/usr/lib/arm-linux-gnueabihf/perl5/5.32/auto/JSON
pi@raspberrypi:~ $ find /usr/share/perl5 -iname '*json*'
/usr/share/perl5/JSON
/usr/share/perl5/JSON.pm
pi@raspberrypi:~ $
Hier hat's scheinbar geholfen:
https://forum.fhem.de/index.php/topic,114260.msg1085389.html#msg1085389 (https://forum.fhem.de/index.php/topic,114260.msg1085389.html#msg1085389)
Danke und Gruß
Thomas
Zitat von: fhemsmaevcharger am 30 Dezember 2021, 15:16:46
Hallo J,
nach dem ich "use json;" hinzugefügt habe passiert folgendes:
Can't locate json.pm in @INC (you may need to install the json module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/arm-linux-gnueabihf/perl5/5.32 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl ./FHEM/lib) at ./FHEM/76_SMAEVCharger.pm line 57.
BEGIN failed--compilation aborted at ./FHEM/76_SMAEVCharger.pm line 57.
Auf die Schnelle bin ich jetzt auch erst einmal überfragt und müsste erst einmal in die Tiefen einer Linux-Installation abtauchen. So, wie es aussieht sind die Perl-Module wohl nicht an der richtigen Stelle installiert oder werden nicht gefunden. Scheint also grundsätzlich erst einmal nichts mit dem Modul zu tun zu haben, sondern mit deiner Installation. Ich schau mal, ob ich einen Ansatz für eine Lösung finde, bin da aber auch nicht wirklich der Profi.
Gruß
Jürgen
Hilft die folgende Info noch?
pi@raspberrypi:~ $ find /usr/lib/arm-linux-gnueabihf/perl5 -iname '*json*'
/usr/lib/arm-linux-gnueabihf/perl5/5.32/JSON
/usr/lib/arm-linux-gnueabihf/perl5/5.32/auto/JSON
pi@raspberrypi:~ $ find /usr/share/perl5 -iname '*json*'
/usr/share/perl5/JSON
/usr/share/perl5/JSON.pm
pi@raspberrypi:~ $
Hier hat's scheinbar geholfen:
https://forum.fhem.de/index.php/topic,114260.msg1085389.html#msg1085389 (https://forum.fhem.de/index.php/topic,114260.msg1085389.html#msg1085389)
Danke und Gruß
Thomas
Zitat
Auf die Schnelle bin ich jetzt auch erst einmal überfragt und müsste erst einmal in die Tiefen einer Linux-Installation abtauchen. So, wie es aussieht sind die Perl-Module wohl nicht an der richtigen Stelle installiert oder werden nicht gefunden. Scheint also grundsätzlich erst einmal nichts mit dem Modul zu tun zu haben, sondern mit deiner Installation. Ich schau mal, ob ich einen Ansatz für eine Lösung finde, bin da aber auch nicht wirklich der Profi.
Gruß
Jürgen
Ok, danke dir!
Vielleicht hilft mir dein Output von
export
perl --version
perl -e "print qq(@INC)"
find /home/pi/perl5 -iname '*json*' (bzw. mit entsprechend angepasstem Pfad?)
Oder andere Frage: Läuft das bei dir auch auf einem Raspberry Pi (2?) mit Raspberry Pi OS version 5.10?
Ich könnte das und FHEM ja nochmal neu aufsetzen...
Allerdings war das beim ersten mal schon etwas schwierig, die Anleitung nicht so ganz eindeutig für einen Laien wie mich...
Aber trotzdem vielen Dank nochmal für die Unterstützung!
FHEM neu aufgesetzt ( manuell nach Anleitung hier: https://debian.fhem.de (https://debian.fhem.de) (Manual installation from console) ).
Leider mit demselben Ergebnis: ... STATE Process died prematurely.
Zitat von: fhemsmaevcharger am 30 Dezember 2021, 21:11:43
FHEM neu aufgesetzt ( manuell nach Anleitung hier: https://debian.fhem.de (https://debian.fhem.de) (Manual installation from console) ).
Leider mit demselben Ergebnis: ... STATE Process died prematurely.
Ich glaube, dass das Problem nicht an der Installation des FHEM liegt, sondern eher beim Betriebssystem oder ggf. an irgendwelchen Rechten bzw. benutzten Usern?
Zitat von: fhemsmaevcharger am 30 Dezember 2021, 16:50:32
Ok, danke dir!
Vielleicht hilft mir dein Output von
export
perl --version
perl -e "print qq(@INC)"
find /home/pi/perl5 -iname '*json*' (bzw. mit entsprechend angepasstem Pfad?)
Oder andere Frage: Läuft das bei dir auch auf einem Raspberry Pi (2?) mit Raspberry Pi OS version 5.10?
Zunächst einmal zu meiner Installation. Ich habe einen Raspi 4 mit Raspbian Version 10 (buster).
Wenn ich mich mit "pi" anmelde dann bekomme ich folgende Werte:
export (nur die Perl-relevanten):
declare -x PATH="/home/pi/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
declare -x PERL5LIB="/home/pi/perl5/lib/perl5"
declare -x PERL_LOCAL_LIB_ROOT="/home/pi/perl5"
declare -x PERL_MB_OPT="--install_base \"/home/pi/perl5\""
declare -x PERL_MM_OPT="INSTALL_BASE=/home/pi/perl5"
perl --version:
This is perl 5, version 28, subversion 1 (v5.28.1) built for arm-linux-gnueabihf-thread-multi-64int
(with 61 registered patches, see perl -V for more detail)
perl -e "print qq(@INC)"
/home/pi/perl5/lib/perl5/5.28.1/arm-linux-gnueabihf-thread-multi-64int /home/pi/ perl5/lib/perl5/5.28.1 /home/pi/perl5/lib/perl5/arm-linux-gnueabihf-thread-multi -64int /home/pi/perl5/lib/perl5 /etc/perl /usr/local/lib/arm-linux-gnueabihf/per l/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /u sr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /home /pi/perl5/lib/perl5/5.28.0 /home/pi/perl5/lib/perl5/5.28.0/arm-linux-gnueabihf-t hread-multi-64int /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-bas
find /home/pi/perl5 -iname '*json*' (hier habe ich nur bei der Abfrage mit home/pi etwas in versteckten Dateien gefunden,)
/home/pi/.local/lib/python3.7/site-packages/pkcs7-0.1.2.dist-info/metadata.json
/home/pi/.cpan/build/Crypt-Rijndael_PP-0.05-0/MYMETA.json
/home/pi/.cpan/build/Data-UUID-1.226-0/META.json
/home/pi/.cpan/build/Data-UUID-1.226-0/MYMETA.json
/home/pi/.cpan/build/local-lib-2.000024-0/META.json
/home/pi/.cpan/build/local-lib-2.000024-0/MYMETA.json
/home/pi/.cpan/build/Data-GUID-0.049-0/META.json
/home/pi/.cpan/build/Data-GUID-0.049-0/MYMETA.json
Hallo J,
ich habe aus
use json;
ein
use JSON;
gemacht.
Und siehe da...
:) ;) :D ;D 8)
Vielen Dank so weit! Und guten Rutsch ins neue Jahr!!!
Internals:
DEF 192.168.178.87 <user> <password>
FUUID 61cd7f09-f33f-95fa-a9a9-a3032af9c91fd210
HOST 192.168.178.87
INTERVAL 60
LASTUPDATE 31.12.2021 / 17:46:12
NAME mySMAEVCharger
NR 16
PASS <password>
STATE Data retrieved
TYPE SMAEVCharger
USER <user>
HELPER:
ACCESS_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDA5NjkxMTAsInN1YiI6IldCQWRtaW4iLCJ1aWQiOiJkYThmNzMxNi1kZmUxLTQzNjMtODU2Yi0yZmI5YjMwNzJkNTAiLCJleHAiOjE2NDA5NzI3MTB9.gL8qZIe37FeRDwBAWImzSsxyKVpmlX-Ll5MOsj8ozMk
BASEURL https://192.168.178.87
EXPIRE_TOKEN 1640972711
INTERVAL 60
REFRESH_TOKEN eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDA5NjkxMTAsInN1YiI6IldCQWRtaW4iLCJ1aWQiOiJkYThmNzMxNi1kZmUxLTQzNjMtODU2Yi0yZmI5YjMwNzJkNTAiLCJleHAiOjE2NDEwNTU1MTAsInR5cGUiOiJyZWZyZXNoIn0.MoQ57uKNid57MbqktLHj8J2apMU-ycPfJlLK5ryIm-k
SESSIONID node0rgsyafp2dkdghmd4zqbbyezq342.node0
Status_Ladevorgang nicht verbunden
READINGS:
2021-12-31 17:46:12 Energie_Ladevorgang 0
2021-12-31 17:46:12 Leistung_Bezug 0
2021-12-31 17:46:12 Leistung_Ladestation 0
2021-12-31 17:46:12 Netzspannung_Phase_L1 229.604
2021-12-31 17:46:12 Netzspannung_Phase_L2 230.778
2021-12-31 17:46:12 Netzspannung_Phase_L3 231.103
2021-12-31 17:46:12 Netzstrom_Phase_L1 0
2021-12-31 17:46:12 Netzstrom_Phase_L2 0
2021-12-31 17:46:12 Netzstrom_Phase_L3 0
2021-12-31 17:46:12 Param_Betriebsart_Ladevorgang Optimiertes_Laden
2021-12-31 17:46:12 Param_Dauer_Ladevorgang 0
2021-12-31 17:46:12 Param_Ende_Ladevorgang 2021-12-31 10:48:28
2021-12-31 17:46:12 Param_Energiemenge_Ladevorgang 0
2021-12-31 17:46:12 Param_Fallback_Wirkleistungsbegrenzung 11000
2021-12-31 17:46:12 Param_Ladebereitschaft_bis_Trennung 60
2021-12-31 17:46:12 Param_Minimaler_Ladestrom 10
2021-12-31 17:46:12 Param_Nennstrom_Netzanschluss 32
2021-12-31 17:46:12 Param_Netz_Nennspannung 230
2021-12-31 17:46:12 Param_Trennung_nach_Vollladung ja
2021-12-31 17:46:12 Schalterstellung_Drehschalter intelligente Ladung
2021-12-31 17:46:12 Schnellabschaltung 1467
2021-12-31 17:46:12 Startzeit_Verbindung nicht verbunden
2021-12-31 17:46:12 Status_Ladevorgang nicht verbunden
2021-12-31 17:46:12 Status_Meldung ---
2021-12-31 17:46:12 Status_Zustand Ok
2021-12-31 17:46:12 Status_verbundenes_Fahrzeug Ok
2021-12-31 17:46:12 Zaehlerstand_Bezugszaehler 505470
2021-12-31 17:46:12 Zaehlerstand_Ladestation 505470
2021-12-31 17:46:12 state Data retrieved
Attributes:
room all
verbose 5
Zitat von: fhemsmaevcharger am 31 Dezember 2021, 17:51:59
Hallo J,
ich habe aus
use json;
ein
use JSON;
gemacht.
Und siehe da...
:) ;) :D ;D 8)
Vielen Dank so weit! Und guten Rutsch ins neue Jahr!!!
Sehr schön und dann so einfach ;-). Ich falle doch auch immer wieder auf diese Groß-/Kleinschreibung rein.
Viel Spaß mit dem Modul und einen guten Start ins neue Jahr!
Hallo Zusammen,
wenn ich nun alles richtig gemacht habe, dann sollte ab morgen 8:00 Uhr das Modul über den normalen Update-Prozess verfügbar sein.
Ein gutes Neues Jahr!
Jürgen
Super! Für mich ,,Endnutzer" der das Modul bereits installiert hat ändert sich da irgendwas? Beziehungsweise muss ich etwas anpassen damit das Update automatisch ddin Modul ,,mitnimmt"?
Zitat von: Dracolein am 02 Januar 2022, 15:50:55
Super! Für mich ,,Endnutzer" der das Modul bereits installiert hat ändert sich da irgendwas? Beziehungsweise muss ich etwas anpassen damit das Update automatisch ddin Modul ,,mitnimmt"?
Wenn du in deinem FHEM demnächst ein Update machst, wird automatisch die neueste Version des Moduls installiert. Du musst also nichts machen.
Zitat von: jual am 24 Dezember 2021, 09:54:40
Mit Node-RED kenne ich mich leider nicht so aus. Im Prinzip müssen aber für den Zugriff auf die Wallbox nur entsprechende URL's aufgerufen werden, die dann die notwendigen Ergebnisse liefern. In meinem Modul habe ich aktuell Curl-Aufrufe dafür verwendet. Dort müsstest du eventuell fündig werden. Ansonsten habe ich nochmal meine ersten Versuche als Python-Script angehangen.
Hallo jual,
wie weiter oben schon steht, reichen meine "Software-Kenntnisse" leider nicht aus um das in FHEM umzusetzen was ich gerne möchte.
Es kostet mich einfach zu viel Zeit, da ich mich mit der Linux- und Perl-Welt überhaupt nicht auskenne.
Mit Node-RED geht es für mich deutlich einfacher!
Problem: Ich habe in
dieser Welt nichts gefunden, was Daten aus dem SMA EV Charger auslesen kann.
Wenn ich mir den Inhalt von smaEVCharger.py ansehe, dann vermute ich dass es für einen Experten kein großes Ding ist ein entsprechendes Modul für Node-RED zu programmieren.
Mich persönlich interessieren eigentlich nur folgende Werte / Zustände aus dem EVCharger:
- lädt/lädt nicht
- Fehler aufgetreten?
- Ladeleistung
Wenn ich es richtig verstehe, dann liefert der Charger die gewünschten Daten im JSON-Datenformat (wie z.B. unten dargestellt (Wetterdaten von Openweathermap)). Oder?
Ich würde mit zutrauen in Node-RED diese Daten mit Javascript selbst auszuwerten.
Aber das Ding mit dem einloggen und den curl-Aufrufen habe ich leider nicht drauf.
Wie könnte man das lösen?
Kann ich mit deinem Code im Node-RED-Forum nach Unterstützung fragen?
Oder hast du eine andere Idee?
Oder kann man die beiden Welten mit MQTT zusammenführen (hab's gerade irgendwo gelesen...)?
Oder ist diese Frage in diesem Forum schon ein "Verbrechen"?
Ich hoffe ich ärgere hier niemanden zu sehr mit meinen Fragen...
:-\
Auf jeden Fall viele Grüße
Thomas
{
"lat": 33.4418,
"lon": -94.0377,
"timezone": "America/Chicago",
"timezone_offset": -21600,
"current": {
"dt": 1641425180,
"sunrise": 1641388843,
"sunset": 1641424925,
"temp": 287.78,
"feels_like": 286.4,
"pressure": 1012,
"humidity": 42,
"dew_point": 275.02,
"uvi": 0,
"clouds": 1,
"visibility": 10000,
"wind_speed": 0.89,
"wind_deg": 75,
"wind_gust": 3.58,
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01n"
}
]
},
"minutely": [
{
"dt": 1641425220,
"precipitation": 0
},
{
"dt": 1641425280,
"precipitation": 0
},
{
"dt": 1641425340,
"precipitation": 0
},
{
"dt": 1641425400,
"precipitation": 0
},
{
"dt": 1641425460,
"precipitation": 0
},
{
"dt": 1641425520,
"precipitation": 0
},
{
"dt": 1641425580,
"precipitation": 0
},
{
"dt": 1641425640,
"precipitation": 0
},
{
"dt": 1641425700,
"precipitation": 0
},
{
"dt": 1641425760,
"precipitation": 0
},
Zitat von: fhemsmaevcharger am 06 Januar 2022, 00:45:54
Hallo jual,
wie weiter oben schon steht, reichen meine "Software-Kenntnisse" leider nicht aus um das in FHEM umzusetzen was ich gerne möchte.
Es kostet mich einfach zu viel Zeit, da ich mich mit der Linux- und Perl-Welt überhaupt nicht auskenne.
Mit Node-RED geht es für mich deutlich einfacher!
Problem: Ich habe in dieser Welt nichts gefunden, was Daten aus dem SMA EV Charger auslesen kann.
Wenn ich mir den Inhalt von smaEVCharger.py ansehe, dann vermute ich dass es für einen Experten kein großes Ding ist ein entsprechendes Modul für Node-RED zu programmieren.
Mich persönlich interessieren eigentlich nur folgende Werte / Zustände aus dem EVCharger:
- lädt/lädt nicht
- Fehler aufgetreten?
- Ladeleistung
Wenn ich es richtig verstehe, dann liefert der Charger die gewünschten Daten im JSON-Datenformat (wie z.B. unten dargestellt (Wetterdaten von Openweathermap)). Oder?
Ich würde mit zutrauen in Node-RED diese Daten mit Javascript selbst auszuwerten.
Aber das Ding mit dem einloggen und den curl-Aufrufen habe ich leider nicht drauf.
Dann versuche ich mal ein paar Anregungen/Hilfestellungen zu geben, soweit ich das kann ;-).
Da du FHEM ja mittlerweile laufen hast, wäre das aus meiner Sicht grundsätzlich eine gute Ausgangsbasis auf bestimmte Daten zuzugreifen. Man könnte FHEM auch mittels MQTT mit Node-RED verbinden. Dazu habe ich ein etwas älteres Video bzw. eine vielleicht insgesamt interessante Videoreihe gefunden.
https://www.youtube.com/watch?v=AGn_QfPmk-g
Dann ein paar Hinweise zum Thema "curl". Diese Aufrufe habe ich verwendet, weil ich bei den ersten Schritten in der Programmierung eines Moduls (war für mich auch Neuland), mit den vorhanden "http-Aufrufen" Probleme hatte. Das komplizierte ist tatsächlich immer der eigentliche Login-Prozess bei solchen Seiten. Hier müssen dann evtl. Cookies und Access-Token ermittelt werden und bei folgenden Aufrufen verwendet werden.
Im Code meine Moduls findet man in der Logon-Funktion die Vorgehensweise für die Login und die Funktion getCurlCmd baut im Prinzip nur die notwendigen Parameter für den Aufruf der Webseite zusammen. Dort findet man dann im Prinzip auch quasi die Links, die man benötigt, um auf die jeweiligen Daten zuzugreifen. Ich bin mir allerdings nicht sicher, ob dir das wirklich weiter hilft ;-).
Daher auch nochmal eine grundsätzliche Frage. Was möchtest du denn genau machen bzw. wo möchtest du was anzeigen? Vielleicht ist es ja einfacher dir bei der reinen Umsetzung in FHEM zu helfen. Denn dafür würde man eigentlich nich sehr viel Infos benötigen und müsste auch kein erfahrener Programmierer sein.
Hallo jual,
ist es möglich diesen Wert noch aus der WB zu lesen?
Measurement.InOut.DigIn.CurWCtlNom
Hatte in Zeile 724
$livedata->{"Measurement.InOut.DigIn.CurWCtlNom"} = "Vorgabe_Wirkleistungsbegrenzung";
und in Zeile 741
"Measurement.InOut.DigIn.CurWCtlNom" => "Vorgabe_Wirkleistungsbegrenzung",
hinzugefügt aber das Reading kommt nicht.
Hier kann ich sehen ob die Wallbox über die Digitaleingänge runtergeregelt wird.
Danke.
Gruß
Max
Zitat von: MadMax am 19 Februar 2022, 13:18:03
Hallo jual,
ist es möglich diesen Wert noch aus der WB zu lesen?
Measurement.InOut.DigIn.CurWCtlNom
Schau ich mir an, kann aber ein wenig dauern.
Hallo Jual,
ich habe es selbs gefunden.
Measurement.Operation.WMaxLimNom
das ist mein Wert den ich benötige.
also Zeile 724:
$livedata->{"Measurement.Operation.WMaxLimNom"} = "Vorgabe_Wirkleistungsbegrenzung";
und Zeile 741:
"Measurement.Operation.WMaxLimNom" => "Vorgabe_Wirkleistungsbegrenzung",
Gruß
Max
Zitat von: MadMax am 19 Februar 2022, 16:20:42
Hallo Jual,
ich habe es selbs gefunden.
Super, dann schau ich mal, ob ich morgen Zeit finde, dass direkt einzubauen und ein Update bereit zu stellen.
Gruß
Jürgen
Hallo Jürgen,
ich habe einen kleinen Schreibfehler (ich habe keine Ahnung wie das richtig heisst) in "der Ausgabe der Daten die mit dem verbosity level" zusammenhängen gefunden:
Line 744: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl Response Code: 200
Line 749: 2022.04.22 11:33:12 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd
Line 750: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl cmd livedata: curl -i -s -k -X 'POST'...
Line 752: 2022.04.22 11:33:13 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd
Ich nehme an es muss SMAEVCharger_getCurlcmd heissen...
Zitat von: fhemsmaevcharger am 22 April 2022, 11:46:16
Hallo Jürgen,
ich habe einen kleinen Schreibfehler (ich habe keine Ahnung wie das richtig heisst) in "der Ausgabe der Daten die mit dem verbosity level" zusammenhängen gefunden:
Line 744: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl Response Code: 200
Line 749: 2022.04.22 11:33:12 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd
Line 750: 2022.04.22 11:33:12 5: mySMAEVCharger - Curl cmd livedata: curl -i -s -k -X 'POST'...
Line 752: 2022.04.22 11:33:13 5: mySMAEVCharger -> SMAEVCgarger_getCurlcmd
Ich nehme an es muss SMAEVCharger_getCurlcmd heissen...
Danke für den Hinweis. Ist zum Glück nur ein Fehler in einem Logeintrag, der keine funktionalen Auswirkungen hat. Werde ich bei einem der nächsten Updates dann beheben.
Hallo Jürgen,
ich bin auf den Schreibfehler im Logeintrag gestoßen, weil ich nun gerade versuche mit Node-RED nicht nur die Momentanwerte
"livedata" ($baseurl.'/api/v1/measurements/live/')
auszulesen (was bisher wunderbar und stabil funktioniert), sondern nun auch die Parameter
"read_params" ($baseurl.'/api/v1/parameters/search/').
Leider klappt es so wie ich es umgesetzt habe nicht, ich erhalte "statusCode: 500".
Ich kann in deinem PERL Script erkennen, dass es zwischen Auslesen von Momentanwerte und Parameter wohl einen prinzipiellen Unterschied gibt. Bei den Parameter wird noch ein '$data' angehängt.
Ich habe allerdings keine Ahnung warum und um welche Daten es geht...
$curlcmd = SMAEVCharger_getCurlcmd($hash, "livedata");
$curlcmd = SMAEVCharger_getCurlcmd($hash, "read_params", $data);
In Node-RED ist das Lesen der Momentanwerte umgesetzt, indem ein Node-Red HTTP Request Node wie folgt konfiguriert wird:
msg.method = "post";
msg.url = "https://192.168.178.62/api/v1/measurements/live/";
msg.payload = `[{"componentId":"IGULD:SELF"}]`;
msg.headers = {
"Host": "192.168.178.62",
"Connection": "close",
"Accept": "application/json, text/plain, */*",
"User-Agent": "okhttp/3.10.0",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
"Content-Length": "30",
"Referer": "https://192.168.178.62/webui/login",
"Authorization": `Bearer ${token}`
};
msg.cookies = {};
msg.rejectUnauthorized = false;
Als Antwort erhalte ich folgende Daten (payload: array[25]:
msg : Object
object
payload: array[25]
topic: """"
timestamp: 1650626047481
_msgid: ""b0acb56df3bd68fc""
method: ""post""
url: ""https://192.168.178.62/api/v1/measurements/live/""
headers: object
connection: ""close""
date: ""Fri, 22 Apr 2022 11:14:07 GMT""
cache-control: ""no-cache,no-store,must-revalidate""
content-type: ""application/json""
x-node-red-request-node: ""29f96838""
cookies: object
empty
rejectUnauthorized: false
statusCode: 200
responseUrl: ""https://192.168.178.62/api/v1/measurements/live/""
redirectList: array[0]
retry: 0"
Das Lesen der Parameter habe ich umgesetzt, indem ein Node-Red HTTP Request Node wie folgt konfiguriert wird:
(Die geänderten Angaben, im Vergleich zu den Momentanwerte habe ich rot markiert.)
msg.method = "post";
msg.url = "https://192.168.178.62/api/v1/parameters/search/";
msg.payload = `[{"queryItems":[{"componentId":"IGULD:SELF"}]}]`;
msg.headers = {
"Host": "192.168.178.62",
"Connection": "close",
"Accept": "application/json, text/plain, */*",
"User-Agent": "okhttp/3.10.0",
"Sec-Fetch-Site": "same-origin",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7",
"Content-Type": "application/json",
"Content-Length": "45",
"Referer": "https://192.168.178.62/webui/Plant:1,IGULD:SELF/configuration/view-parameters",
"Authorization": `Bearer ${token}`
};
msg.cookies = {};
msg.rejectUnauthorized = false;
Als Antwort erhalte ich folgende Daten (keine payload und statusCode: 500):
msg : Object
object
payload: """"
topic: """"
timestamp: 1650626047481
_msgid: ""b0acb56df3bd68fc""
method: ""post""
url: ""https://192.168.178.62/api/v1/parameters/search/""
headers: object
connection: ""close""
date: ""Fri, 22 Apr 2022 11:14:09 GMT""
cache-control: ""no-cache,no-store,must-revalidate""
x-node-red-request-node: ""da8506e0""
cookies: object
empty
rejectUnauthorized: false
statusCode: 500
responseUrl: ""https://192.168.178.62/api/v1/parameters/search/""
redirectList: array[0]
retry: 0"
Hast du vielleicht spontan eine Idee wo das Problem liegen könnte?
Danke und Gruß
Thomas
Zusatzfrage: Eigentlich müsste man die "Details" doch mit Hilfe der Entwicklerwerkzeugen eines aktuellen Browsers herauslesen können, wenn man weiß wie. Oder?
(siehe Screenshot).
Hallo zusammen,
die neue Softwareversion 1.2.23.R wurde auf meinem EV Charger 22 gestern vormittag automatisiert installiert. Sicherlich ist Euch bekannt, dass es neue Funktionen gibt:
https://www.sma-sunny.com/service-tipp-updates-sma-ev-charger/
Das Dimmen der LEDs funktioniert gut.
Die Ladefreigabe gegen Fremdzugriff funktioniert grundsätzlich auch, bleibt für meinen Geschmack aber dennoch deutlich hinter ihren Möglichkeiten. Derzeit kann ich diese Funktion global NUR auf der Browser-Benutzeroberfläche lokal auf dem EV Charger aktivieren/deaktivieren und habe folglich in der App lediglich die Möglichkeit, die Freigabe vor jeder Ladung zu erteilen. Sinnvoller wäre es gewesen, auch ersteren Parameter per App zu steuern. Naja...
Besteht eventuell die Möglichkeit, diesen Parameter "Parameter.Chrg.ChrgApv" ("Manuelle Ladefreigabe") in dies Modul einzubauen und per FHEM steuerbar zu machen? Ich habe eine kleine Urlaubsmodus-Routine in FHEM, steuerbar u.a. per Apple Home usw. Dort würde ich diesen Befehl einbauen und die Ladebox würde automatisch gesperrt werden :)
Hallo, ich habe das Modul mit meiner neuen Wallbaox auch ausprobiert. Es funktioniert soweit alles bestes, Danke dafür. Ich hättet aber noch eine Frage. Ich würde gerne den Parameter: Parameter.Inverter.AcALim über einen SET Befehl setzen ist das möglich und wie ist der Syntax. In den Readings taucht er nicht auf, laut Webzugang es es aber ein beschreibbarer Parameter.
Danke für die Unterstützung
Zitat von: joho am 03 August 2022, 13:44:20
Hallo, ich habe das Modul mit meiner neuen Wallbaox auch ausprobiert. Es funktioniert soweit alles bestes, Danke dafür. Ich hättet aber noch eine Frage. Ich würde gerne den Parameter: Parameter.Inverter.AcALim über einen SET Befehl setzen ist das möglich und wie ist der Syntax. In den Readings taucht er nicht auf, laut Webzugang es es aber ein beschreibbarer Parameter.
Ich schaue mir das gerne nach meinem Urlaub mal an. Wahrscheinlich sind durch die Updates ein paar neue Möglichkeiten vorhanden. Die würde ich dann natürlich demnächst auch einbauen.
Herzlichen Dank für das Modul.
Wäre es dir möglich, sowohl Username als auch Passwort oder zumindest das Passwort im Klartext aus der Def herauszunehmen und dieses wie in anderen Modulen über Kryptierung in einem Attribut abzuspeichern?
Zitat von: jual am 08 August 2022, 20:55:29
Ich schaue mir das gerne nach meinem Urlaub mal an. Wahrscheinlich sind durch die Updates ein paar neue Möglichkeiten vorhanden. Die würde ich dann natürlich demnächst auch einbauen.
Hattest Du zwischenzeitlich Gelegenheit einmal drüberzuschauen? Mich reizt weiterhin
Zitat von: Dracolein am 08 Mai 2022, 08:05:38
Besteht eventuell die Möglichkeit, diesen Parameter "Parameter.Chrg.ChrgApv" ("Manuelle Ladefreigabe") in dies Modul einzubauen und per FHEM steuerbar zu machen? Ich habe eine kleine Urlaubsmodus-Routine in FHEM, steuerbar u.a. per Apple Home usw. Dort würde ich diesen Befehl einbauen und die Ladebox würde automatisch gesperrt werden :)
Zitat von: jual am 08 August 2022, 20:55:29
Wahrscheinlich sind durch die Updates ein paar neue Möglichkeiten vorhanden. Die würde ich dann natürlich demnächst auch einbauen.
Danke für das Update, Jual.
Eine einfache Nachfrage: In Zeilen 367 und 368 nutzt du die Funktion "netatmo_encrypt", in Zeilen 440 und 441 aber dann "SMAEVCharger_SMAdecrypt" - ist hier noch ein Überbleibsel von einem Code-Transfer oder passt das so?
Nun bin ich endlich dazu gekommen ein paar Dinge zu fixen/ergänzen:
Neue Parameter:
- AC-Strom_Begrenzung (Update nur als "advanced")
- Param_Manuelle_Ladefreigabe (was der macht, ist mir nicht klar)
- Param_Ladefreigabe_ueber_App (hiermit kann man wohl steuern, dass jede Ladung über die App freigegeben werden muß)
Ansonsten habe ich endlich User und Password encrypted. Dass define des Moduls muß hierfür nochmals angestoßen werden.
Den Fehler, der gerade schon von Ralli angemerkt wurde, habe ich direkt auch nochmal behoben. Das kommt davon, wenn man Code aus anderen Modulen "klaut" ;-).
Ich hoffe, dass ansonsten alles funktioniert.
In einem anderen Thread gibts selten aber sporadisch Probleme bzgl. unklarer Variablenwerte auf Seiten der SMA Geräte. Da werden z.B. auf numerische Variablen kurzzeitig auch mal Textstrings geschrieben und wenn FHEM in diesem Moment grade die Daten abholt, werden sie in FHEM übertragen und führen mitunter zu Logfiles.
Beim EV Charger ist das bei mir sehr häufig. Ich verwende das Reading
Leistung_Ladestation
für diverse Abfragen o.ä. und erhalten häufig beispielhaft solche Logeinträge:
2022.11.01 14:53:19 1: PERL WARNING: Argument "Scan-durchführen" isn't numeric in division (/) at (eval 217554) line 1.
2022.11.01 14:53:19 3: eval: { ReadingsVal("EVCharger22","Leistung_Ladestation",0)/1000.0;; }
Neben "Scan-durchführen" steht dort alles Mögliche an sinnfreien Textstrings. Ob das auch bei anderen Readings der Fall ist, entzieht sich meiner Kenntnis.
Wäre es Dir möglich, den durch Dein Modul eingelesenen Wert auf Plausibilität zu prüfen ?
Ansonsten großartig, speziell die Möglichkeit die Ladefreigabe per FHEM zu automatisieren, wird mir sehr viel Freude bereiten.
Das hatte ich noch nie :o
Zitat von: Ralli am 01 November 2022, 16:43:04
Das hatte ich noch nie :o
Kurios, ich kenne es gar nicht ohne diese Auffälligkeit.
Zitatattr interval 15
ist bei mir gesetzt, d.h. nach kurzer Zeit ist die (fehlerhafte) Darstellung in meiner FTUI Oberfläche wieder verschwunden, aber nervig ist es schon. Seit März hab ich das Elektroauto und auch das FHEM-Modul zum EV-Charger und seit diesem Zeitpunkt auch diese Auffälligkeit.
Ohne aktiven Ladevorgang gibts keinen Logeintrag, aber sobald die Wallbox lädt, habe ich mindestens 1-2 Logeinträge dieser Art.
edit:
sind die besagten Änderungen schon "eingecheckt"? (update all --> sehe keine Änderungen)
Zitat von: Dracolein am 01 November 2022, 16:41:07
In einem anderen Thread gibts selten aber sporadisch Probleme bzgl. unklarer Variablenwerte auf Seiten der SMA Geräte. Da werden z.B. auf numerische Variablen kurzzeitig auch mal Textstrings geschrieben und wenn FHEM in diesem Moment grade die Daten abholt, werden sie in FHEM übertragen und führen mitunter zu Logfiles.
Beim EV Charger ist das bei mir sehr häufig. Ich verwende das Reading
Leistung_Ladestation
für diverse Abfragen o.ä. und erhalten häufig beispielhaft solche Logeinträge:
2022.11.01 14:53:19 1: PERL WARNING: Argument "Scan-durchführen" isn't numeric in division (/) at (eval 217554) line 1.
2022.11.01 14:53:19 3: eval: { ReadingsVal("EVCharger22","Leistung_Ladestation",0)/1000.0;; }
Neben "Scan-durchführen" steht dort alles Mögliche an sinnfreien Textstrings. Ob das auch bei anderen Readings der Fall ist, entzieht sich meiner Kenntnis.
Wäre es Dir möglich, den durch Dein Modul eingelesenen Wert auf Plausibilität zu prüfen ?
Ansonsten großartig, speziell die Möglichkeit die Ladefreigabe per FHEM zu automatisieren, wird mir sehr viel Freude bereiten.
Von deinem beschriebenen Fehler habe ich bisher noch nichts gehört. Damit ich diesen näher eingrenzen kann, würden mir ein paar zusätzliche Infos helfen.
- Tritt das Problem auch auf, wenn du das Intervall auf einen größeren Wert setzt?
- Wie sieht der Code aus, in dem du das ReadingVal für die Ladeleistung nutzt?
- welchen Wert hat der Parameter "Param_WLAN_suchen"
- welchen Inhalt hat der Wert "Status_WLAN_Scan"
- welchen Inhalt hat der Wert "Status_WLAN_Verbindung"
- Ist die Wallbox über WLAN verbunden?
Zum Update. Das sollte ab morgen 8:00 verfügbar sein.
attr userreadings Leistung_Ladestation_kW { ReadingsVal("EVCharger22","Leistung_Ladestation",0)/1000.0;; }
"Param_WLAN_suchen" gibt es bei mir nicht.
Status_WLAN_Scan: 3369
Status_WLAN_Verbindung: 303
Die Box ist per Ethernetkabel angeschlossen. Der integrierte Accesspoint ist deaktiviert (Parameter.Wl.SoftAcsIsOn = NEIN) und die WLAN-Schnittstelle ist abgeschaltet ( Parameter.Wl.IsOn = NEIN).
Zitat von: Dracolein am 01 November 2022, 17:41:10
attr userreadings Leistung_Ladestation_kW { ReadingsVal("EVCharger22","Leistung_Ladestation",0)/1000.0;; }
"Param_WLAN_suchen" gibt es bei mir nicht.
Status_WLAN_Scan: 3369
Status_WLAN_Verbindung: 303
Die Box ist per Ethernetkabel angeschlossen. Der integrierte Accesspoint ist deaktiviert (Parameter.Wl.SoftAcsIsOn = NEIN) und die WLAN-Schnittstelle ist abgeschaltet ( Parameter.Wl.IsOn = NEIN).
Danke für die schnelle Rückmeldung. Versuche doch mal ReadingsNum zu verwenden, statt ReadingsVal. Ansonsten baue ich den Code bei mir auch mal ein, um das zu testen.
Bei den WLAN Werten ist mir aufgefallen, dass ich diese bisher noch nicht in Texte umwandle. Kannst du mal in der Weboberfläche vom EVCharger schauen, was bei WLAN Verbindung steht? Bei mir steht hier 1725 bzw. "Keine Verbindung". Ich habe allerdings das WLAN der Wallbox wohl nicht deaktiviert.
ReadingsNum habe ich eingetragen, werde abwarten & berichten.
Zu Deiner zweiten Frage, was meinst Du genau?
Parameter.Wl.DoAcq: -----
Parameter.Wl.DoWPS: -----
Zitat von: Dracolein am 01 November 2022, 17:53:48
ReadingsNum habe ich eingetragen, werde abwarten & berichten.
Zu Deiner zweiten Frage, was meinst Du genau?
Parameter.Wl.DoAcq: -----
Parameter.Wl.DoWPS: -----
In der offiziellen Weboberfläche des EVChargers kannst du dir die Werte anschauen. Dort stehen immer die Texte, so dass ich eine Zuordnung zum Wert "303" im Code einbauen kann. Zu finden unter "Monitoring -> Momentanwerte". Das dürfte aber grundsätzlich nichts mit dem Fehler zu tun haben, hilft mir aber, das Modul weiter zu verbessern.
- siehe Anhang -
So wirklich finden kann ich nicht, was Du suchst.
Zitat von: Dracolein am 01 November 2022, 18:01:13
- siehe Anhang -
So wirklich finden kann ich nicht, was Du suchst.
Das hilft schonmal. Der Status des WLAN ist "Aus", so dass ich aus "303" nun "Aus" machen kann.
Heutiges Update arbeitet problemlos. Nach "shutdown restart" wurden automatisch User und Passwort kryptiert.
Hier vermutlich noch einen Bug gefunden?
Das kam bei
set EVCharger Param_Param_Betriebsart_Ladevorgang Optimiertes_Laden
was man oben via Dropdown auswählen kann.
edit:
Googlerecherche ergab:
4718 = Schnelladen
Zitat von: Dracolein am 02 November 2022, 17:24:31
Hier vermutlich noch einen Bug gefunden?
Das kam bei
set EVCharger Param_Param_Betriebsart_Ladevorgang Optimiertes_Laden
was man oben via Dropdown auswählen kann.
edit:
Googlerecherche ergab:
4718 = Schnelladen
Das ist seltsam und muss ich mir nochmal genauer anschauen. Hatte die Funktion heute tatsächlich bei mir im Einsatz und hat problemlos funktioniert.
Ist das vielleicht eine Kombination aus mehreren Ursachen und tritt nur auf, wenn kein Fahrzeug angesteckt ist beispielsweise?
(fiel mir grade spontan ein, bin leider nicht zuhause um es mal ebend zu testen)
Weil meine Fehlerbeschreibung ist in diesem Thread weiter vorne bereits zu finden gewesen und nicht neu.
Bin gestern drüber gestolpert, als ich abends die Ladesperre ausprobierte. Nach dem Setzen der Ladesperre ändert sich der Wert von Param_Param_Betriebsart_Ladevorgang auf "Ladestopp" und wird nicht automatisch von SMA wieder auf etwas Sinniges zurückgesetzt, nachdem ich die Ladesperre wieder entfernte.
Folglich wollte ich mit obigem Befehl den Param_Param_Betriebsart_Ladevorgang wieder auf "Optimiertes_Laden" setzen, damit die Wallbox ihren Dienst beginnt.
(Workaround ohne FHEM: Drehschalter an der Wallbox einmal bewegen, das setzt den Parameter dann auf SMA Seite)
Zitat von: Dracolein am 03 November 2022, 09:28:26
Ist das vielleicht eine Kombination aus mehreren Ursachen und tritt nur auf, wenn kein Fahrzeug angesteckt ist beispielsweise?
(fiel mir grade spontan ein, bin leider nicht zuhause um es mal ebend zu testen)
Weil meine Fehlerbeschreibung ist in diesem Thread weiter vorne bereits zu finden gewesen und nicht neu.
Bin gestern drüber gestolpert, als ich abends die Ladesperre ausprobierte. Nach dem Setzen der Ladesperre ändert sich der Wert von Param_Param_Betriebsart_Ladevorgang auf "Ladestopp" und wird nicht automatisch von SMA wieder auf etwas Sinniges zurückgesetzt, nachdem ich die Ladesperre wieder entfernte.
Folglich wollte ich mit obigem Befehl den Param_Param_Betriebsart_Ladevorgang wieder auf "Optimiertes_Laden" setzen, damit die Wallbox ihren Dienst beginnt.
(Workaround ohne FHEM: Drehschalter an der Wallbox einmal bewegen, das setzt den Parameter dann auf SMA Seite)
Ich habe jetzt nochmal versucht, deine ganzen Fehlermeldungen nachzuvollziehen. In meinem System funktioniert das allerdings nicht und es läuft alles reibungslos. Dein Userreading "Leistung_Ladestation_kW" habe ich auch bei mir eingebaut. Darüber hinaus habe ich versucht im ladenden Zustand als auch ohne Ladung bzw. ohne angestecktes Fahrzeug, die Parameter "Betriebsart_Ladevorgang" und "Ladesperre" zu verändern. Alles einwandfrei bei mir. Bei mir ändert sich beim setzen des Parameters "Ladesperre" auch nur dieser Parameter und nicht gleichzeitig die Betriebsart.
Wenn du also weiterhin Probleme hast, müssten wir nochmals genauer schauen, woran das liegen kann. Dann müssten wir vielleicht auch nochmal die Basics prüfen und beispielsweise FHEM Version, wo ist FHEM installiert usw. prüfen.
Zu 'Param_Param_Betriebsart_Ladevorgang' habe ich eine Anmerkung: Bei mir geht der Parameter manchmal während des Ladevorganges einfach auf Ladestop, keine Ahnung, ob das die Wallbox selbst macht?!?
Jedenfalls fange ich das über ein DOIF ab und setze ihn ggf. wieder auf Optimiertes_Laden, wenn das Auto angestöpselt ist. Funktioniert so für mich seit ca. 6 Monaten... Hatte mich vorher immer gewundert, warum der Ladevorgang nicht startet/weiter geht.
Gruß Peter
Danke für den Hinweis. Das ist mir bisher tatsächlich nicht aufgefallen. In meinem Code ist eigentlich keine Logik enthalten, die diesen Parameter ändert. Normalerweise sollte eine Änderung nur von "außen" erfolgen. Ich protokolliere das bei mir gerne mal mit. Da ich aber aktuell kaum zu Hause lade, wird es wohl ein wenig dauern, bis ich da ein Ergebnis habe.
Welchen Wert hat den der Parameter "Param_Trennung_nach_Vollladung" bei dir (Detaillevel evtl. verändern um ihn zu sehen)? Vielleicht kommt da irgendeine Meldung vom Auto, die in Verbindung mit diesem Parameter für den Ladestopp sorgt. Bei mir steht der auf "nein", damit ggf. auch die Heizung über die Wallbox betrieben werden kann.
Moin! 'Param_Trennung_nach_Vollladung' steht auf 'Ja' bei mir...
Gruß Peter
Zitat von: PSI69 am 17 November 2022, 07:11:09
Moin! 'Param_Trennung_nach_Vollladung' steht auf 'Ja' bei mir...
Gruß Peter
Dann würde ich mal versuchen, den auf "nein" zu stellen und zu beobachten, ob dann die Ladungen nicht mehr gestoppt werden.
Zitat von: jual am 01 November 2022, 17:47:30
Versuche doch mal ReadingsNum zu verwenden, statt ReadingsVal.
Kann ich inzwischen bestätigen, dass dies Abhilfe geschafft hat. Keine Fehlermeldungen mehr im Logfile.
Das hier ( https://forum.fhem.de/index.php/topic,116543.msg1242895.html#msg1242895 ) ist allerdings weiterhin existent
Zitat von: jual am 17 November 2022, 09:06:11
Dann würde ich mal versuchen, den auf "nein" zu stellen und zu beobachten, ob dann die Ladungen nicht mehr gestoppt werden.
Param_Trennung_nach_Vollladung steht jetzt auf nein, ich beobachte mal, ob sich etwas am Verhalten ändert.
Hallo Jual,
nach dem update habe ich feststellen müssen das du die von mir benötigten Parameter immernoch nicht in deiner Verion aus dem EVCharger liest.
Zeile 749:
$livedata->{"Measurement.Operation.WMaxLimNom"} = "Vorgabe_Wirkleistungsbegrenzung";
Zeile 766:
"Measurement.Operation.WMaxLimNom" => "Vorgabe_Wirkleistungsbegrenzung",
Ich ahbe die jetzt bei mir wieder hinzugefügt.
Eventuell könntest du die mal in der Offiziellen Verion intigriren.
Danke.
Gruß
Max
Hallo Zusammen,
bin neu in dem Forum und auf der Suche nach einer Anbindung des SMA EV Chargers.
Funktioniert das Script nur mit einem Sunny Home Manager oder kann man damit auch einen EV charger direkt, d.h. ohne dass ein Sunny Home Manager installiert ist, verwenden?
Gruss
Da das Modul sich direkt mit der Wallbox verbindet denke ich das es egal ist ob du einen Homemanager hast.
Gruß
Max
Super, danke für die Info, dann lege ich mal los.
Schöne Grüsse
Reinhard