✔
|
Private answer
versuche mal:
"address": "#2# POST ${if exists(charge_power_w)`/control.html?power=${charge_power_w}} "
markiert als Spam
|
✔
|
Private answer
Selbst wenn ich in der Zählerdefinition, das POST gegen die IP Adresse austausche, klappt es nicht, also statt
"address": "#2#${if exists(charge_power_w) `POST /control.html?power=${charge_power_w}}"
dieses in der Definition
"address": "#2#192.168.178.16/control.html?power=${charge_power_w}"
zeigt das LOG:
2025-03-25T21:17:46.184Z HTTP CLT [70] connected to 192.168.178.16:80
2025-03-25T21:17:46.189Z HTTP CLT [70] GET 192.168.178.16/control.html?power=1000 HTTP/1.1
2025-03-25T21:17:46.191Z Host: 192.168.178.16:80
2025-03-25T21:17:46.191Z Content-Length: 0
2025-03-25T21:17:46.191Z Content-Type: text/plain
2025-03-25T21:17:46.191Z
2025-03-25T21:17:46.196Z
2025-03-25T21:17:46.199Z HTTP CLT [70] sent message
2025-03-25T21:17:46.218Z HTTP CLT HTTP/1.1 400 Bad Request
2025-03-25T21:17:46.221Z Content-Type: text/html
2025-03-25T21:17:46.221Z Content-Length: 18
2025-03-25T21:17:46.221Z
2025-03-25T21:17:46.221Z Bad request syntax
2025-03-25T21:17:46.651Z HTTP CLT [70] connected to 192.168.178.16:80
2025-03-25T21:17:46.652Z HTTP CLT [70] reconnected to server
2025-03-25T21:17:46.655Z HTTP CLT [70] GET /data.jsn HTTP/1.1
2025-03-25T21:17:46.659Z Host: 192.168.178.16:80
2025-03-25T21:17:46.659Z
2025-03-25T21:17:46.660Z
2025-03-25T21:17:46.662Z HTTP CLT [70] sent message
2025-03-25T21:17:46.704Z HTTP CLT HTTP/1.1 200 OK
2025-03-25T21:17:46.707Z Content-Type: application/json
2025-03-25T21:17:46.707Z Content-Length: 2502
In der zweiten Hälfte sieht man, dass die Abfrage des JSON für die Leistung und Temperaturen funktioniert.
Woran kann es also noch liegen? Habt ihr noch Vorschläge was ich testen kann?
markiert als Spam
|
✔
|
Private answer
Ich hatte heute nochmal Zeit mir es anzuschauen. Ohne mein Zutun, scheint cFos jetzt den HTTP Request zu senden:
2025-03-25T20:56:48.456Z HTTP CLT [69] connected to 192.168.178.16:80
2025-03-25T20:56:48.461Z HTTP CLT [69] GET POST /control.html?power=1000 HTTP/1.1
2025-03-25T20:56:48.464Z Host: 192.168.178.16:80
2025-03-25T20:56:48.464Z Content-Length: 0
2025-03-25T20:56:48.464Z Content-Type: text/plain
2025-03-25T20:56:48.464Z
2025-03-25T20:56:48.469Z
2025-03-25T20:56:48.471Z HTTP CLT [69] sent message
2025-03-25T20:56:48.480Z HTTP CLT HTTP/1.1 400 Bad Request
2025-03-25T20:56:48.485Z Content-Type: text/html
2025-03-25T20:56:48.485Z Content-Length: 18
2025-03-25T20:56:48.490Z
2025-03-25T20:56:48.492Z HTTP CLT 0d 0a ..
2025-03-25T20:56:48.494Z
2025-03-25T20:56:48.495Z HTTP CLT [69] socket is no longer connected
2025-03-25T20:56:48.497Z HTTP CLT [69] failed to parse HTTP response; closing connection
2025-03-25T20:56:48.513Z HTTP CLT [69] connected to 192.168.178.16:80
2025-03-25T20:56:48.515Z HTTP CLT [69] reconnected to server
2025-03-25T20:56:48.517Z HTTP CLT [69] GET POST /control.html?power=1000 HTTP/1.1
2025-03-25T20:56:48.517Z Host: 192.168.178.16:80
2025-03-25T20:56:48.517Z Content-Length: 0
2025-03-25T20:56:48.517Z Content-Type: text/plain
2025-03-25T20:56:48.517Z
2025-03-25T20:56:48.519Z
2025-03-25T20:56:48.521Z HTTP CLT [69] sent message
2025-03-25T20:56:48.558Z HTTP CLT HTTP/1.1 400 Bad Request
2025-03-25T20:56:48.559Z Content-Type: text/html
2025-03-25T20:56:48.559Z Content-Length: 18
2025-03-25T20:56:48.560Z
2025-03-25T20:56:48.562Z HTTP CLT [69] socket is no longer connected
2025-03-25T20:56:48.563Z HTTP CLT [69] failed to parse HTTP response; closing connection
Es scheint mir, dass er Schwierigkeiten hat sich zu verbinden.
Wenn ich über den Browser die URL direkt abrufe, heizt der Stab. Das ist auch in der Kachel zu sehen. Die Temperaturen werden auch korrekt angezeigt und die 1000W als charge_power_w berechnet, aber diese sorgen nicht dafür, dass er heizt.
markiert als Spam
|
✔
|
Private answer
Sehr merkwürdig! Ich habe da auch nichts anderes eingestellt.
Da gehen mir auch die Ideen aus.
markiert als Spam
|
✔
|
Private answer
Den Eintrag habe ich auch nicht gesehen.
Ich habe nochmal die JSON, die Steuerung und den unteren Teil der Kachel angehängt.
In der Kachel sieht man, dass "Cha" 500 W ist.
Hast Du irgendetwas anders eingestellt als ich?
markiert als Spam
|
✔
|
Private answer
In deinem Log wurde gar keine Leistung gesendet.
Zumindest finde ich keine Einträge wie diese: /control.html?power=333 HTTP/1.1
markiert als Spam
|
✔
|
Private answer
Hi GeoTec,
Ich gerade die cFos auf 2.4.13 aktualisiert.
Und habe nochmal die JSON angepasst. Wie in Deinem Beispiel. Leider kein Erfolg. Der Heizstab scheint nicht mal mehr die kurze Anfangszeit eine Leistung anliegen zu haben. :|
Wenn ich die URL über meinen Browser absende, verheizt der Stab aber die Leistung (für kurze Zeit).
Das Log habe ich angehängt. Es scheint zwei Events zu geben. Get und send. Ansonsten bin ich nicht bewandert im lesen dieses Logs.
markiert als Spam
|
✔
|
Private answer
Hi, bei mir scheint es so zu funktionieren:
"address": "#5#${if exists(charge_power_w)`POST /control.html?power=${charge_power_w}}"
Stell mal das Logging von "HTTP / Websocket *" auf Daten. Dann solltest du die Kommunikation im Log sehen können.
markiert als Spam
|
✔
|
Private answer
Guten Morgen,
Das habe ich nun getan, leider war keine der drei Variante erfolgreich. Ich habe es mit #1# probiert, den laut dem Beispiel in den Docs werden keine führenden Nullen verwendet.
Der Heizstab hat immer nur für eine sehr kurze Zeit Leistung anliegen, nachdem ich die json ausgetauscht habe und in den Einstellungen der Kachel den Gerätetyp hin- und hergewechselt habe. Auch "TCP Verbindung halten" hat keinen Einfluss.
Zum Testen habe ich die angehängte Steuerung verwendet.
Hat jemand noch eine Idee?
markiert als Spam
|
✔
|
Private answer
Probier es doch aus! Ich vermute es ist dein erstes Beispiel.
markiert als Spam
|
✔
|
Private answer
Hey, Danke Euch beiden.
"address": "${if exists(charge_power_w)`POST /control.html?power=${charge_power_w}}"
An welcher Stelle sollte ich #002# einfüge?
"address": "#002#${if exists(charge_power_w)`POST /control.html?power=${charge_power_w}}"
"address": "${if exists(charge_power_w)`#002#POST /control.html?power=${charge_power_w}}"
"address": "${if exists(charge_power_w)`POST #002#/control.html?power=${charge_power_w}}"
markiert als Spam
|
✔
|
Private answer
Ich habe mich mit deiner Herausforderung jetzt nur am Rande beschäftigt, jedoch einfach mal eine Idee ins Blaue hinein:
Du könntest dir über das Lademanagement eine Formel bauen, die dafür sorgt, dass der Wert jeweils, auch wenn er gleich bleibt minimal verändert wird. - Wäre das ein Ansatz?
EDIT: Der Ansatz von Geotec ist natürlich der elegantere ;-)
markiert als Spam
|
✔
|
Private answer
Sehr gut!!
Outputs periodisch schreiben: Bei einigen Geräten müssen die Outputs periodisch geschrieben werden, andernfalls setzt das Gerät die Werte wieder auf "Standard". Beispielsweise verwendet der Kostal Speicher wieder seine Standardregeln, wenn die Speichersteuerung eine zeitlang nicht aktiv geschrieben wurde. Um periodisch Outputs zu setzen, können Sie der Adresse ein #xxx# voranstellen, wobei xxx angibt, alle wieviel Sekunden der Output neu geschrieben wird, auch wenn der zu schreibende Wert gleich geblieben ist. Wenn beispielsweise die Adresse /cnf?cmd=set_cm_vars&name=test&val=42 lautet, können Sie mit #30#/cnf?cmd=set_cm_vars&name=test&val=42 dafür sorgen, dass dieser Wert alle 30 Sekunden geschrieben wird.
https://www.cfos-emobility.de/de/cfos-charging-manager/documentation/user-defined-meters.htm
markiert als Spam
|
✔
|
Private answer
Ich habe einen Teilerfolg erzielt.
Mit der angehängten JSON, kann ich Werte aus dem Heizstab auslesen und ich kann die Leistung des Heizstabes (zumindest einmal) fernsteuern. Dazu muss an dem Heizstab "HTTP" als Ansteuerungs Typ ausgewählt sein.
Mein Problem ist nun, dass wenn ich die Batteriesteuerung in der cFos aktiviere, dann wird der Leistungswert nur einmal gesendet, bis der Wert sich ändert. Der Heizstab brauch aber regelmäßig ein Signal, auch wenn der Wert sich nicht ändert.
Wie kann ich die cFos dazu bringen, den Wert regelmäßig zu senden?
markiert als Spam
|
✔
|
Private answer
Ich habe über die myPV Website eine Abfrage gestellt, aber bis heute leider noch keine Antwort bekommen.
Aber ich habe mit der HTTP Schnittstelle des Heizstabes experimentiert.
Mit der folgenden URL kann ich den Heizstab auf 1000W fernsteuern.
<IP_des_Stabes>/control.html?power=1000
Als Antwort bekomme ich eine HTML Seite zurück, siehe Screenshot. Die Leistung am Heizstab fällt nach ein paar Sekunden wieder auf Null, wenn nicht zeitnah eine neuer Wert gesendet wird.
Mit der folgenden URL bekomme ich eine JSON mit allen Daten zurück, siehe Screenshot:
<IP_des_Stabes>/data.jsn
Was ich leider noch nicht hinbekommen habe, ist wie ich diese Daten in einer Zählerdefinition auslesen oder setzen kann. Die angehängte Datei funktioniert leider nicht. Irgendwelche Tipps?
markiert als Spam
|
✔
|
Private answer
Sehr merkwürdig. Der Status 2 bedeutet m.E. das entweder das Register oder der Funktioncode falsch ist....
markiert als Spam
|
✔
|
Private answer
Leider kein Erfolg, 1000 mit 6 und 16 und 1001 mit 6 und 16.
1001 hätte mich auch gewundert, denn ich kann aus 1001 ja die Temperatur auslesen.
markiert als Spam
|
✔
|
Private answer
Versuch mal ins ob du etwas ins Register 1001 schreiben kannst.
Versuch auch mal die Schreib-Funktion = 16.
markiert als Spam
|
✔
|
Private answer
Hier alle Kacheln. ich habe auch die deaktivierten angezeigt.
markiert als Spam
|
✔
|
Private answer
Der Modbus test hat mit lesen des 1000 funktioniert und der test hat den Status 0 zurückgegeben. Beim Schreiben war der Status 2.
In den Einstellungen des Heizstabes habe ich nichts gefunden um das Schreiben zu ermöglichen. In der Doku steht zwar, dass über "Adjustable ModBus TCP" ein Schreiben möglich sei. Aber mit der Einstellung hat der ModBus test auch den Status 2 zurückgegeben, es sah in den Einstellungen des Heizstabes auch eher nach einem Holen der Werte aus, und nicht ein warten auf Werte.
Ich werde morgen versuchen myPV anzurufen und erfragen, wie der Heizstab ferngesteuert werden kann.
markiert als Spam
|
✔
|
Private answer
Hmm, muss man vielleicht die Steuerung am Heizstab erst freigeben?
Versuch mal mit dem Modbus-Test (ganz unten unter Konfiguration) einen Wert Manuel zu schreiben.
Kannst du mal ein Screenshot aller Zählerkachel zeigen?
markiert als Spam
|
✔
|
Private answer
Wenn ich eine einfache Steuerung anlege, wird zwar unter der Kachel der "richtige" Wert angezeigt (in diesem Fall je nach Uhrzeit 1800 oder 0). Aber wenn der Wert 1800 ist, fängt der Heizstab nicht an zu heizen, sondern bleibt inaktiv. Wie kann ich das lösen?
markiert als Spam
|
✔
|
Private answer
Moin,
Mit der Einstellung "Verbrauch", und einer Leistung von 0 (weil Nachts) wird das Haus nun in der Übersicht als inaktiv angezeigt. Aber die Batterie zeigt, dass Leistung fliest und zwar ins Haus (< 1kW)
Ich bin wieder auf "Anzeige" umgestiegen, dann wird am Haus wieder die Summe aus Haus und Heizstab angezeigt.
PS: Ich habe keinen Zähler, der den Verbrauch des Hauses direkt misst. Ich habe nur Zähler am Wechselrichter, Batterie, Heizstab und Netz
markiert als Spam
|
✔
|
Private answer
Ja, der mtypes ist falsch! Hab ich vergessen zu ändern. 0 ist besser. Es ist aber nur für die Sortierung im "Hinzufügen-Diaglog" interessant. Mehr hängt da nicht dran.
Ob und wie die Werte verrechnet werden wird mit der "Rolle" eingestellt. Ich würde sie auf die Rolle auf "Verbrauch" stellen.
Die Rolle "Anzeige" macht das was drauf steht, sie zeigt nur an und wird in den Berechnungen nicht berücksichtigt.
markiert als Spam
|
✔
|
Private answer
Ich wollte deine Zählerdefinition als "anderes Gerät" hinzufügen, habe sie aber nur unter "Wechselrichter" gefunden. Gibt es Vor- oder Nachteile bzgl. der mtypes? Am Ende verbraucht der Heizstab Energie. Daher fand ich Wechselrichter nicht intuitiv, da für mich dies eher mit Erzeuger als mit Verbraucher gleichzusetzen ist.
Bei meiner Kachel (8) und deiner Definition in Kachel (9) werden jetzt zumindest die gleichen Leistungswerte angezeigt. D.h. ich werde jetzt mit deiner Definition und Laderegel experimentieren.
Ein Problem habe ich noch bzgl der Anzeige im Flussdiagram. Nur mit meiner Definition der Kachel 8 wurde der Verbrauch des Heizstabes zusammen mit dem Ladeleistung der Batterie als Ladestrom der symbolisierten Batterie in der Übersicht angezeigt. D.h. ich konnte in der Übersicht nicht sehen, ob die Batterie oder der Heizstab die Leistung aufnimmt oder beide. Gibt es eine Möglichkeit ein weiteres Symbol dem Flussdiagramm hinzuzufügen?
Mit deiner zusätzlichen Definition als Kachel 9 kommt die Berechnung des Flusses jetzt ganz durcheinander. Jetzt sieht es so als ob das Haus Energie abgibt. Ok, eine der Kacheln wird irgendwann gelöscht.
Wenn ich meine Definition inaktiv setze, wird die Leistung des Heizstabes aus deiner Definition dem Haus zugerechnet. D.h. ich kann zumindest die Batterie wieder sauber erkennen. Gibt es andere Lösungen die Leistung des Heizstabes separat in der Übersicht auszuweisen?
markiert als Spam
|