Kann ich die Charging Manager Variablen auch über die API setzen? HTTP/ MQTT

  • Fragen
  • [Gelöst] Kann ich die Charging Manager Variablen auch über die API setzen? HTTP/ MQTT

Kann ich die Charging Manager Variablen auch über die API setzen? HTTP/ MQTT

0
0

Das wäre ja super, wenn man man die Charging Manager Variablen auch über die API auslesen und setzen könnte.

Ich will das auch mal so machen die wie cFos Jungs und fragen und dann selbst antworten 😀

Gelöst
markiert als Spam
Geschrieben von (Fragen: 8, Antworten: 122)
Gefragt am 9. April 2024 7:06
140 views

Antworten (2)

1
Private answer

Doch MQTT funktioniert auch. - So mache ich es jedenfalls.

Geheimtipp: mit der neuesten Version (voraussichtlich 2.0.7), die in Kürze verfügbar sein sollte, kann man auch mit &tmp=1 hinter der Variable dafür sorgen, dass die Änderung nicht im Flash landet und dieser daher durch viele Schreibzugriffe nicht abgenutzt wird. (Klar, damit ist sie nach einem Neustart erstmal verloren.)

markiert als Spam
Geschrieben von (Fragen: 12, Antworten: 50)
Beantwortet am 9. April 2024 18:35
0
Private answer

Ja! Das geht :)
Es war mal hier dokumentiert, jetzt findet man es nur noch über zum Beispiel die Waybackmachine.
Aber hier auch einfach nochmal direkt:

HTTP API

Setzen einer Variablen

GET /cnf?cmd=set_cm_vars&name=n&val=v&clear=c
n ist der Name der Variablen, v ist deren Wert.
clear ist optional, mit c=1 werden alle existierenden Variablen vor dem Neusetzen gelöscht.

curl -i -X GET --user admin:1234abcd 'http://localhost/cnf?cmd=set_cm_vars&name=var3&val=123' Linux
curl -i -X GET --user admin:1234abcd "http://localhost/cnf?cmd=set_cm_vars&name=var3&val=123" Windows

Setzen aller Variablen

POST /cnf?cmd=set_cm_vars&clear=1
Der POST body enthält ein JSON Objekt mit den Namen und Werten der Variablen, z.B.

{"vars": [{ "name": "var1", "expr": 1.5 }], { "name": "var2", "expr": 2 }] }
Lösche alle Variablen und setze var1 auf 1.5, var2 auf 2.

curl -i -X POST -d '{ "vars": [{ "name": "tarif", "expr": 1 }, { "name": "PWR", "expr": 70 }] }' --user admin:1234abcd 'http://localhost/cnf?cmd=set_cm_vars' Linux
curl -i -X POST -d "{ "vars": [{ "name": "tarif", "expr": 1 }, { "name": "PWR", "expr": 70 }] }" --user admin:1234abcd "http://localhost/cnf?cmd=set_cm_vars" Windows

Lesen aller Variablen

GET /cnf?cmd=get_cm_vars
Liefert ein zu set_cm_vars passendes JSON Objekt mit allen Variablen, deren Formeln (oder Konstanten) und deren aktuell ausgerechneten Werten.

curl -i -X GET --user admin:1234abcd 'http://localhost/cnf?cmd=get_cm_vars Linux
curl -i -X GET --user admin:1234abcd "http://localhost/cnf?cmd=get_cm_vars Windows

Dieses API ist mittels Smart Meter Gateway ohne weitere Authentisierung erreichbar, da das Smart Meter Gateway diese bereits durch die Festlegung der Verbindungen und Authentisierung mittels Zertifikaten übernimmt. Vom Heimnetz aus kann dieses API mittels Administrator Passwort genutzt werden.

Das funktioniert natürlich auch ohne SmartMeter Gateway - das war nur mal vor allem dafür gedacht, aber man muss ja nicht alles so nutzen wies gedacht ist :D
Ich habe keine Ahnung, warum das nicht mehr in der Doku zu finden ist, aber deswegen isses ja jetzt hier.

Das ganze sollte dann natürlich auch über MQTT funktionieren. Das hab ich aber nicht ausprobiert, dazu gerne noch kommentieren, wers erfolgreich getestet hat!

Viel Spaß ;)

markiert als Spam
Geschrieben von (Fragen: 8, Antworten: 122)
Beantwortet am 9. April 2024 7:09