(Gelöst) Tesla Powerwall 2 AC Fehler 403

Begonnen von pnewman, 10 Februar 2021, 16:08:28

Vorheriges Thema - Nächstes Thema

TimoD

Danke @Tester15 hab mit deinem Hinweis eine Lösung gefunden, nicht schön aber geht: nur in kürze, weil es spät ist :-)

Bei 1. + 4. Passwort / Email / IP Adresse anpassen nicht vergessen!

1. Über SSH und fhem User: {qx(,,curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type: application/json" -d '{"username":"customer","password":"01234", "email":"mail@mail.me","force_sm_off":false}' "https://192.168.178.XXX/api/login/Basic"")}

Ab ins FHEM:
2. define PowerwallDummy dummy
attr PowerwallDummy readingList jasonInput real jasonInputAggregates jasonInputAggregates1 Update Prozent1 Prozent2 Prozent ProzentGUI Aggregates Solarpower Solarpower1 Gridpower1 Gridpower Batterypower Batterypower1 Housepower1 Housepower
3. define n_PowerwallDummy notify PowerwallDummy:Update.*
4. Notify Anpassen:
PowerwallDummy:Update.* {if ("$EVTPART1" eq "1"){
my $b = qx(curl -s -k -b /opt/fhem/cookie.txt https://192.168.178.92/api/system_status/soe 2>&1);;
fhem("set PowerwallDummy jasonInput $b");
fhem ("set PowerwallDummy Prozent2 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInput","")))[1]);
fhem ("set PowerwallDummy Prozent " .round((split "}", (ReadingsVal("PowerwallDummy","Prozent2","")))[0],1));}
elsif("$EVTPART1" eq "2"){
my $b = qx(curl -s -k -b /opt/fhem/cookie.txt https://192.168.178.92/api/meters/aggregates 2>&1);;
fhem("set PowerwallDummy jasonInputAggregates $b");
fhem ("set PowerwallDummy Gridpower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[6]);
fhem ("set PowerwallDummy Gridpower " .round((split ",", (ReadingsVal("PowerwallDummy","Gridpower1","")))[0],0));
fhem ("set PowerwallDummy Solarpower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[75]);
fhem ("set PowerwallDummy Solarpower " .round((split ",", (ReadingsVal("PowerwallDummy","Solarpower1","")))[0],0));
fhem ("set PowerwallDummy Batterypower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[29]);
fhem ("set PowerwallDummy Batterypower " .round((split ",", (ReadingsVal("PowerwallDummy","Batterypower1","")))[0],0));
fhem ("set PowerwallDummy Housepower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[52]);
fhem ("set PowerwallDummy Housepower " .round(((split ",", (ReadingsVal("PowerwallDummy","Housepower1","")))[0])*(-1),0));
fhem ("set HomeBattery " .ReadingsVal("PowerwallDummy","Prozent",""));
}}

5. Über eine Zeitsteuerung Updates abfragen:
define T_alle10Sek at +*00:00:30 set PowerwallDummy Update 1; define Prozent at +00:00:15 set PowerwallDummy Update 2;;
6. Bonus: Real Prozent der Battery
attr PowerwallDummy userReadings real {round((ReadingsVal($name,"Prozent","0")-5)*(100/95),1)}


Grüße Timo

CoolTux

Zitat von: TimoD am 18 Februar 2021, 20:43:38
Oh, dann kommen hier bestimmt noch weitere Bitten von vielen Nutzern, die dein Modul ins Herz geschlossen haben  :-[

Bitte Bitte  ;D

Denkst du, du wirst es irgendwann anpassen? Und falls ja, hast du einen ca. Zeithorizont?

Hab das Teil in der Ansicht meiner Hausautomation und möchte es nicht missen

Ich schaue es mir sehr gern an, wird aber wohl nichts vor Anfang nächsten Monats.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ather

Zitat von: TimoD am 18 Februar 2021, 21:17:25
Danke @Tester15 hab mit deinem Hinweis eine Lösung gefunden, nicht schön aber geht: nur in kürze, weil es spät ist :-)

Bei 1. + 4. Passwort / Email / IP Adresse anpassen nicht vergessen!

1. Über SSH und fhem User: {qx(,,curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type: application/json" -d '{"username":"customer","password":"01234", "email":"mail@mail.me","force_sm_off":false}' "https://192.168.178.XXX/api/login/Basic"")}

Grüße Timo

Hallo Zusammen,

wie und wo genau mache ich das mit dem curl Befehl?

Wenn ich es über putty und der IP des Raspi mache (natürlich mit angepasster IP, Passwort, email), bekomme ich bei dem Befehl von 1. folgende Meldung :

-bash: syntax error near unexpected token `,,curl'

@CoolTux: Wäre super wenn du dein Modul anpasst, würde es auch gerne nutzen

Danke im Vorraus für die Unterstützung.

Gruß
Ather 

Kontrabass

Zitat von: TimoD am 18 Februar 2021, 21:17:25


1. Über SSH und fhem User: {qx(,,curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type: application/json" -d '{"username":"customer","password":"01234", "email":"mail@mail.me","force_sm_off":false}' "https://192.168.178.XXX/api/login/Basic"")}

Hallo TimoD,
ich wollte gerade  - nachdem mich das Update am Freitag auch ereilt hatte - die Abfrage der Powerwall umstellen.
Leider scheitere ich an dem ersten Punkt und bekomme die Fehlermeldung "-bash: Syntaxfehler beim unerwarteten Wort ',,curl'  ".

Ich bin zu wenig firm um das zu bewerten, aber kann dass mit dem Parenthesezeichen (,,) zu tun haben, welches das hochgestellte sein müsste (") ?
Danke für Deinen Wissenstransfer ;-)
Christian aka Kontrabass

Tante Edit: Gerade gesehen, dass nahezu zeitgleich ein weiterer User (ather) dazu auch geschrieben hat und schneller auf Speichern gedrückt hat....

pnewman

Hallo Timo,

vielen Dank für deine Hilfe.

Über Terminal erhalte ich folgendes zurück:
pi@raspi3b-fhem:~ $ curl -s -k -i -c /home/pi/cookie.txt -X POST -H "Content-Type: application/json" -d '{"username":"customer","password":"XXXXX","email":"YYYYYYY@gmx.de","force_sm_off":false}' "https://192.168.178.VVV/api/login/Basic"
HTTP/2 401
content-type: application/json
x-content-type-options: nosniff
content-length: 62
date: Sat, 20 Feb 2021 20:14:15 GMT

{"code":401,"error":"bad credentials","message":"Login Error"}pi@raspi3b-fhem:~ $


Wenn ich deine Zeile eingebe:
pi@raspi3b-fhem:~ $ {qx(,,curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type: application/json" -d '{"username":"customer","password":"01234", "email":"mail@mail.me","force_sm_off":false}' "https://192.168.178.XXX/api/login/Basic"")}
-bash: Syntaxfehler beim unerwarteten Wort `,,curl'


Berichtigt? :
{qx("curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type:application/json" -d '{"username":"customer","password":"XXX", "email":"YYYYY@gmx.de","force_sm_off":false}' "https://192.168.178.VVV/api/login/Basic"")}
-bash: Syntaxfehler beim unerwarteten Wort `"curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type:application/json" -d '{"username":"customer","password":"XXXX", "email":"YYYYYYY@gmx.de","force_sm_off":false}' "https://192.168.178.VVV/api/login/Basic""'
pi@raspi3b-fhem:~ $


Da komme ich leider nicht weiter.

Gruß
Ralf
Raspberry Pi3B+ / Nano-Cul 868 - MAX!=Heizung, HM-Lan - Rollo+Licht, JeeLink-Clone 868 - LaCrosse, JeeLink-Clone 868 - PCA301, CUL 434 - IT-Steckdosen+Fernbedienung

CoolTux

Zitat von: ather am 20 Februar 2021, 10:49:00
@CoolTux: Wäre super wenn du dein Modul anpasst, würde es auch gerne nutzen

Danke im Vorraus für die Unterstützung.

Gruß
Ather

Ich arbeite daran. Leider habe ich aktuell wenig Zeit. Bin aber dran.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

TimoD

Hallo zusammen,

bin auch nicht firm mit der Thematik, kann Euch nur beschreiben wie es bei mir geht:

1. Wichtig Ihr müsst mit Eurem fhem Benutzer über SSH angemeldet sein (nicht über den PI Benutzer, wie ihr diesen aktiviert / ein Passwort vergebet, am besten googeln)
2. Melde ich mich dann über SSH und Termius am Raspberry an und mit folgendem Befehl:

curl -s -k -i -c /opt/fhem/cookie.txt -X POST -H "Content-Type: application/json" -d '{"username":"customer","password":"03232", "email":"timo@do.me","force_sm_off":false}' "https://192.168.178.92/api/login/Basic"

Exakt so ohne weitere Hochkommas o.ä.

JA die Hochkommas waren falsch Autokorrektur MAC  :-X

Hoffe das hilft,...

ather

Hallo Timo,

zum punkt 1 komme ich einfach nicht weiter.
Ich habe jetzt Benutzernamen und Passwort für Fhem festgelegt. Jedoch wenn ich mich über putty am PI anmelden will, verschwindet das Putty-Fenster sobald ich Fhem user und passwort eingebe. Muss ich das direkt am PI machen? Geht es nicht remote über putty und ssh verbindung?

Gruß
Ather

CoolTux

Zitat von: ather am 22 Februar 2021, 10:04:59
Hallo Timo,

zum punkt 1 komme ich einfach nicht weiter.
Ich habe jetzt Benutzernamen und Passwort für Fhem festgelegt. Jedoch wenn ich mich über putty am PI anmelden will, verschwindet das Putty-Fenster sobald ich Fhem user und passwort eingebe. Muss ich das direkt am PI machen? Geht es nicht remote über putty und ssh verbindung?

Gruß
Ather

Das liegt daran weil fhem ein Dienst User ist und kein System User. Schau mal in die /etc/passwd da steht unter anderem hinter dem fhem /bin/false da muss wenn dann /bin/bash rein. Aber bitte bitte tut Euch den Gefallen und wisst was ihr macht. Sonst zerschießt ihr Euch das System.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ather

Danke cooltux,

Am liebsten wäre mir/uns natürlich dein Tool. Aber da mein Energiemanager, Überschuss Speicherung, und weitere Sachen drüber laufen benötige ich die Daten von Tesla pw und möchte das bis zur Modul Fertigstellung so probieren.

Gruß

Wernieman

Mann muß nicht unbedingt gleich User/Passwort/Shell setzen für den User FHEM, bitte tut es euch NICHT an. Auf Shellebene gibt es andere Möglichkeiten dazu.
Einfach erstmal user pi anmelden und dann zum User fhem switchen:
sudo su -s /bin/bash - fhem

Bin mir jetzt mit dem sudo nicht so sicher, weil ich es in 2 Steps durchgeführt und damit nicht getestet habe, sollte aber funzen. Sonst erst root werden (sudo -i) und dann zu fhem werden (su -s /bin/bash - fhem)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

ather

Zitat von: Wernieman am 22 Februar 2021, 10:36:58
Mann muß nicht unbedingt gleich User/Passwort/Shell setzen für den User FHEM, bitte tut es euch NICHT an. Auf Shellebene gibt es andere Möglichkeiten dazu.
Einfach erstmal user pi anmelden und dann zum User fhem switchen:
sudo su -s /bin/bash - fhem

Bin mir jetzt mit dem sudo nicht so sicher, weil ich es in 2 Steps durchgeführt und damit nicht getestet habe, sollte aber funzen. Sonst erst root werden (sudo -i) und dann zu fhem werden (su -s /bin/bash - fhem)

Super Danke. Hat funktioniert. Ich bekomme jetzt wieder Werte von tesla in Fhem angezeigt.

Allerdings habe ich noch eine Frage zum at Befehl. Sollten hier dann 2 at Befehle rauskommen die jeweils Update 2 und 1 ausführen oder kann man diese zwei Befehle zusammenfassen in eine at ? Wenn ich die zeile 5 von Timo direkt eintippe, kommt nur ein at Befehl raus und Update 2 wird nicht ausgeführt.

Außerdem habe ich festgestellt, dass wenn ich den event-on-change-reading parameter setze und auf einige readings begrenze, die Werte nicht mehr upgedatet werden (keine Werte). Erst wenn ich wieder alle readings zulasse erfolgt ein update.

Habt ihr ne idee woran das liegt? 

Gruß
Ather



Kontrabass

Zitat von: TimoD am 18 Februar 2021, 21:17:25
3. define n_PowerwallDummy notify PowerwallDummy:Update.*
4. Notify Anpassen:
PowerwallDummy:Update.* {if ("$EVTPART1" eq "1"){
my $b = qx(curl -s -k -b /opt/fhem/cookie.txt https://192.168.178.92/api/system_status/soe 2>&1);;
fhem("set PowerwallDummy jasonInput $b");
fhem ("set PowerwallDummy Prozent2 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInput","")))[1]);
fhem ("set PowerwallDummy Prozent " .round((split "}", (ReadingsVal("PowerwallDummy","Prozent2","")))[0],1));}
elsif("$EVTPART1" eq "2"){
my $b = qx(curl -s -k -b /opt/fhem/cookie.txt https://192.168.178.92/api/meters/aggregates 2>&1);;
fhem("set PowerwallDummy jasonInputAggregates $b");
fhem ("set PowerwallDummy Gridpower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[6]);
fhem ("set PowerwallDummy Gridpower " .round((split ",", (ReadingsVal("PowerwallDummy","Gridpower1","")))[0],0));
fhem ("set PowerwallDummy Solarpower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[75]);
fhem ("set PowerwallDummy Solarpower " .round((split ",", (ReadingsVal("PowerwallDummy","Solarpower1","")))[0],0));
fhem ("set PowerwallDummy Batterypower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[29]);
fhem ("set PowerwallDummy Batterypower " .round((split ",", (ReadingsVal("PowerwallDummy","Batterypower1","")))[0],0));
fhem ("set PowerwallDummy Housepower1 " .(split ":", (ReadingsVal("PowerwallDummy","jasonInputAggregates","")))[52]);
fhem ("set PowerwallDummy Housepower " .round(((split ",", (ReadingsVal("PowerwallDummy","Housepower1","")))[0])*(-1),0));
fhem ("set HomeBattery " .ReadingsVal("PowerwallDummy","Prozent",""));
}}



Hallo TimoD,
bei 3 & 4 klemmt es bei mir:

Ich habe den Cookie gesetzt (mit der Anleitung und dem user fhem). Scheint zu klappen.
Den Dummy habe ich angelegt und das attribut readinglist gesetzt. Läuft

der notify (3) und if/elseif (4) werfen mir jedoch Fehlermeldungen:
(3): Usage: define <name> notify <regexp> <command>
(4): Unknown command PowerwallDummy:Update.* (und in Folge die Fehler bei der Abarbeitung des if/elseif)

Natürlich habe ich den Code bei mir an die IP Adressen angepasst, aber so weit geht es ja nicht.
Ich finde nicht das Leerzeichen oder das Komma, beim Zählen habe ich eine geschweifte Klammer zu viel. (split "}").

Hat die Autokorrektur da irgendwo im Gebälk auch zugeschlagen?
Etwas ratlos,
Kontrabass



CoolTux

Wer beim aktuellen Problem an der Entwicklung Teil haben möchte ist sehr gerne im Matrix Raum zum Modul eingeladen
#fhem-teslapowerwall-mod:matrix.cooltux.net
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ather

Zitat von: CoolTux am 24 Februar 2021, 09:35:40
Wer beim aktuellen Problem an der Entwicklung Teil haben möchte ist sehr gerne im Matrix Raum zum Modul eingeladen
#fhem-teslapowerwall-mod:matrix.cooltux.net

Hallo Cooltux,

mal ne blöde Frage.

Wie komme ich in diesen Matrixraum. Wenn ich "#fhem-teslapowerwall-mod:matrix.cooltux.net" eingebe finde ich nix?

Würde natürlich unterstützen.

Gruß
Ather