ses Geschrieben April 20, 2024 at 10:59 Geschrieben April 20, 2024 at 10:59 Hallo! Noch habe ich keine WARP3, eine Smart oder Pro wird es aber definitiv werden. Mein Wechselrichter ist ein Sungrow SG10RT, also ohne Speicher und ohne Smartmeter. Um nicht noch einen Zähler hinter dem jetzt neu installierten Zähler des VNB zu installieren, will ich dessen Werte zur Steuerung des PV-Überschussladens nutzen. Für die optische Schnittstelle hab ich einen IR-Lesekopf mit WLAN (ähnlich dem Hichi) bestellt. Auf dessen ESP01S läuft ein Tasmota-Build, die SML-Daten des Zählers stehen als mindestens über MQTT zur Verfügung. Um das als Zähler in der WARP3 anzulegen, brauche ich noch einen MQTT-Broker, oder? Zusätzlich möchte ich ohne Relevanz fürs EV-Laden die Daten eines weiteren Zwischenzählers und des Wechselrichters auslesen. Visualisierung und später auch Steuerung weiterer Verbraucher ist das Ziel. Wechselrichter, VNB- und Unterzähler sind im oder nahe des Zählerschrankes, LAN und WLAN ist da. Wäre es sinnvoll, die ganze Zählerausleserei über ein einziges Gerät im Schrank zu erledigen? Was käme in Frage? Der WEM? Den Zwischenzähler hab ich ebenfalls noch nicht. Üblicherweise haben die Modbus/RTU, wofür wieder ein Gateway nötig wäre. 🙄 Zwei Wärmezähler mit IR-Schittstelle hab ich auch noch… 🫠 Ich freue mich auf eure Ideen oder Links. Zitieren
ses Geschrieben May 10, 2024 at 08:14 Autor Geschrieben May 10, 2024 at 08:14 (bearbeitet) Ich antworte mir einmal selbst: Zähler als MQTT gibt es in WARP nicht (nur in einer internen Entwicklungsversion), weil die Daten zugeordnet werden müssten. Es ist möglich, die Zählerdaten vom Lesekopf per MQTT an Homeassistent und andere zu melden und die WARP von dort fremdzusteuern. Momentan für mich viel Konfiguration und nicht KISS. Deshalb habe ich in der WARP einen API-Zähler mit dem einzigen Wert „Wirkleistung (Bezug minus Einspeisung); Σ L1, L2, L3 [W]“ angelegt. Vom Lesekopf lasse ich über das tasmota-Script diesen Wert per http POST senden. >D >B =>sensor53 r >S =>WebQuery http://192.168.XXX.XXX/meters/1/update POST [Content-Type:application/json] [%sml[3]%] >M 1 +1,3,s,0,9600,MT631 1,77070100010800ff@1000,Total Consumed,kWh,Total_in,18 1,77070100020800ff@1000,Total Delivered,kWh,Total_out,18 1,77070100100700ff@1,Current Consumption,W,Power_cur,16 # bearbeitet May 10, 2024 at 08:16 von ses IP XXX 1 Zitieren
C-Stromer Geschrieben December 1, 2024 at 12:41 Geschrieben December 1, 2024 at 12:41 Moin, ich versuche das nachzuvollziehen und schicke in Tasmota das hier: WebQuery http://192.168.xxx.xxx/meters/1/update POST -d [Content-Type:application/json] [-111] Leider passiert im WARP nichts - wie müsste ein Befehlszeile denn bitte aussehen? Müsste da im LOG etwas auftauchen? Zitieren
MatzeTF Geschrieben December 1, 2024 at 19:40 Geschrieben December 1, 2024 at 19:40 Bitte einen Debug-Report runterladen und hier anhängen, nachdem das Zähler-Update ausgeführt sein sollte. Zitieren
seppl2025 Geschrieben April 17, 2025 at 16:37 Geschrieben April 17, 2025 at 16:37 Zitat Zähler als MQTT gibt es in WARP nicht (nur in einer internen Entwicklungsversion), weil die Daten zugeordnet werden müssten. Ist das immer noch so? Ich habe ebenfalls einen Tasmota-Zähler der an HomeAssistant die Daten per MQTT schickt. Beispiel: { "Time": "2025-04-17T18:35:31", "Time": "2025-04-17T18:35:51", "eHZ": { "E_in": 67076.074, "E_in": 67076.079, "E_out": 49516.958, "Power": 0, "Power2": 846 } } Für mehr Details müsste ich wohl das Tasmota Script ändern. Allerdings bekomme ich wohl in Kürze auch einen anderen Stromzähler. Zitieren
MatzeTF Geschrieben April 17, 2025 at 19:24 Geschrieben April 17, 2025 at 19:24 Ja, das ist immer noch so. Du müsstest die Daten umformatieren, damit die Wallbox sie versteht. Zitieren
seppl2025 Geschrieben April 18, 2025 at 07:38 Geschrieben April 18, 2025 at 07:38 (bearbeitet) Danke für die prompte Antwort. Ich habe jetzt versucht einen Zähler einzurichten. Die Betriebsanleitung hat im Abschnitt 5.3.1 zum Thema API leider keine Details und auch bei der Einrichtung des Zählers ist es mir schwer gefallen festzulegen welche Zählerangaben ich da machen soll. Meine Zähler sind alle ausschliesslich digital verfügbar - der Zweirichtungszähler hat einen Tasmota-Lesekopf wie oben beschrieben. Meine SMA Wechselrichter werden über einen raspberry PI ausgelesen, wo ich per Script selbst die MQTT Nachrichten zusammen baue. Wenn es noch keine MQTT Unterstützung gibt muss ich also selbst die API Anbindung verstehen, was bisher nicht der Fall ist. In der Benutzeroberfläche bin ich überhaupt nicht nach API Details gefragt worden. so bekomme ich bei meinem eingerichteten Zähler lediglich einen Zählernamen und "Es sind bisher keine Werte vorhanden." angezeigt. In der Benutzeroberfläche sind relativ viele Klicks nötig, um sich die Details anzeigen zu lassen. Schöne wäre wenn es einen YAML Import und Export der Konfiguration geben würde - das würde den Austausch von Erfahrungen zwischen Usern vereinfachen. Ich guck mal ob ich die github Links finde oder hier schon was zu Thema Import und Export von Konfigurationen diskutiert wurde. bearbeitet April 18, 2025 at 07:39 von seppl2025 Zitieren
seppl2025 Geschrieben April 18, 2025 at 09:06 Geschrieben April 18, 2025 at 09:06 Ich verwende jetzt das unten stehende Script "warp" zum testen warp -h zeigt die usage Usage: warp [options] Options: -h, --help Show this help message -i, --info show API info -u, --update [value] Update meter value warp -i warp -i see https://docs.warp-charger.com/docs/api_reference version: 2.7.8+67efdb29 meter1: Netz meter1 value: 74 - Summe der Phasenwirkleistungen (Bezug - Einspeisung) warp -u 1200 setzt z.B. die aktuelle Leistung auf 1200 Watt der Zähler zeigt das dann auch an warp -u 1200 ✅:1200 Fehler werden angezeigt z.B. warp -u 1200a ❌:Failed to deserialize: JSON payload could not be parsed #!/bin/bash # WF 2025-04-18 docs=https://docs.warp-charger.com/docs/api_reference wallbox=http://wallbox.bitplan.com #ansi colors #http://www.csc.uvic.ca/~sae/seng265/fall04/tips/s265s047-tips/bash-using-colors.html blue='\033[0;34m' red='\033[0;31m' green='\033[0;32m' # '\e[1;32m' is too bright for white bg. endColor='\033[0m' # # a colored message # params: # 1: l_color - the color of the message # 2: l_msg - the message to display # color_msg() { local l_color="$1" local l_msg="$2" echo -e "${l_color}$l_msg${endColor}" } # Function to display negative messages negative() { local l_msg="$1" color_msg $red "❌:$l_msg" } # Function to display positive messages positive() { local l_msg="$1" color_msg $green "✅:$l_msg" } # call the wallbox API with the given command # and filter the json result with given jq filter # params # #1: cmd - the api command # #2: filter - the jq filter api() { local l_cmd="$1" local l_filter="$2" curl -s $wallbox/$l_cmd | jq -r "$l_filter" } # call the wallbox API with the given command # and filter the json result with given jq filter # show result with the given label # params # #1: label - the title label # #2: cmd - the api command # #3: filter - the jq filter show_api() { local l_label="$1" local l_cmd="$2" local l_filter="$3" printf "%s: " "$l_label" api "$l_cmd" "$l_filter" } # explain what a value_id means explain_value_id() { local l_value_id=$1 local l_explanation="" case $l_value_id in 1) l_explanation="Spannung L1-N" ;; 2) l_explanation="Spannung L2-N" ;; 3) l_explanation="Spannung L3-N" ;; 4) l_explanation="Spannung L1-L2" ;; 5) l_explanation="Spannung L2-L3" ;; 6) l_explanation="Spannung L3-L1" ;; 7) l_explanation="Durchschnittliche Phasenspannung" ;; 8) l_explanation="Durchschnitt Spannung L1-L2, L2-L3, L3-L1" ;; 13|17|21) l_explanation="Strom (Bezug + Einspeisung)" ;; 25) l_explanation="Neutralleiterstrom" ;; 29) l_explanation="Durchschnitt der Phasenströme" ;; 33) l_explanation="Summe der Phasenströme" ;; 39|48|57) l_explanation="Wirkleistung (Bezug - Einspeisung)" ;; 74) l_explanation="Summe der Phasenwirkleistungen (Bezug - Einspeisung)" ;; 83|91|99) l_explanation="Blindleistung (induktiv - kapazitiv)" ;; 115) l_explanation="Summe der Phasenblindleistungen" ;; 122|130|138) l_explanation="Scheinleistung (Bezug + Einspeisung)" ;; 154) l_explanation="Summe der Phasenscheinleistungen" ;; 209) l_explanation="Wirkenergie Bezug (seit Herstellung)" ;; 210) l_explanation="Wirkenergie Bezug (seit letztem Zurücksetzen)" ;; 211) l_explanation="Wirkenergie Einspeisung (seit Herstellung)" ;; 212) l_explanation="Wirkenergie Einspeisung (seit letztem Zurücksetzen)" ;; 213) l_explanation="Wirkenergie Bezug + Einspeisung (seit Herstellung)" ;; 214) l_explanation="Wirkenergie Bezug + Einspeisung (seit letztem Zurücksetzen)" ;; 277) l_explanation="Blindenergie induktiv + kapazitiv (seit Herstellung)" ;; 353|354|355) l_explanation="Leistungsfaktor (gerichtet)" ;; 356) l_explanation="Summe der gerichteten Leistungsfaktoren" ;; 364) l_explanation="Netzfrequenz" ;; *) l_explanation="Unknown value_id" ;; esac echo "$l_explanation" } # print usage information usage() { echo "Usage: $(basename $0) [options]" echo "Options:" echo " -h, --help Show this help message" echo " -i, --info show API info" echo " -u, --update [value] Update meter value" exit 1 } # # show API infos # info() { echo "see $docs" show_api version info/version '.firmware' show_api meter1 meters/1/config '.[1].display_name' first_value_id=$(api meters/1/config '.[1].value_ids[0]') first_value=$(explain_value_id $first_value_id) printf "meter1 value: %s - %s\n" "$first_value_id" "$first_value" } # Update meter values function # params # #1: value - the value to set (should be an array of values) update_meter() { local l_value="$1" local l_result=$(curl -s -X POST "$wallbox/meters/1/update" \ -d "[$l_value]") if [ -z "$l_result" ]; then positive "$l_value Watt set" else negative "$l_result" fi } # handle command line options while [ "$1" != "" ]; do option="$1" case $option in -h|--help) usage ;; -u|--update) shift value="$1" if [ "$value" = "" ]; then echo "Error: Missing value for update" usage fi # Update meter value update_meter "$value" # Add update functionality here ;; -i|--info) info ;; *) echo "Unknown option: $option" usage ;; esac shift done Zitieren
MatzeTF Geschrieben April 18, 2025 at 10:47 Geschrieben April 18, 2025 at 10:47 On 4/18/2025 at 9:38 AM, seppl2025 said: Schöne wäre wenn es einen YAML Import und Export der Konfiguration geben würde - das würde den Austausch von Erfahrungen zwischen Usern vereinfachen. Ich guck mal ob ich die github Links finde oder hier schon was zu Thema Import und Export von Konfigurationen diskutiert wurde. Ein Export und Import aller Einstellungen steht schon länger auf unserer Wunschliste. In diesem Fall würdest du aber auch nicht deine gesamte Konfiguration anderen Nutzern zur Verfügung stellen wollen. Die Einstellungen eines einzelnen Zählers kannst du per JSON runterladen: http://warp3-2abc/meters/1/config Importieren kannst du die Einstellungen eines Zählers, indem du sie per HTTP PUT an exakt die gleiche URL schickst. Alternativ kannst du die gleichen JSON-Daten per MQTT unter warp3/2abc/meters/1/config ansehen und importieren kannst du sie, indem du sie an warp3/2abc/meters/1/config_update schickst. Wenn du einen API-Zähler mit mehreren Werten einrichtest, musst du alle als JSON-Array an …/meters/1/update schicken, also z.B. [123.4, 555, 42.3]. Funktioniert sowohl über HTTP als auch MQTT. Zitieren
seppl2025 Geschrieben April 19, 2025 at 06:21 Geschrieben April 19, 2025 at 06:21 (bearbeitet) @MatzeTF Danke für die Hinweise. Im Moment habe ich ja theoretisch zwei Zähler. Den einen kann ich zumindestens schon mal "simulieren". Der andere ist der Warpcharger Zähler, der wird bei mir aber als "Kein Stromzähler angeschlossen" dargestellt. Gestern wollte ich das Laden mit dem simulierten Zähler ausprobieren. Das Ergebnis im Lade log ist aber: 18.04.2025 19:15 Maximum-Voll N/A 13:18:35 N/A Der Ladeverlauf sieht dann so aus: bearbeitet April 19, 2025 at 06:36 von seppl2025 Zitieren
seppl2025 Geschrieben April 19, 2025 at 06:26 Geschrieben April 19, 2025 at 06:26 (bearbeitet) Wenn ich das live beeinflusse warp -u 1200 ✅:1200 Watt set wf@fixit com.bitplan.rose % warp -u 1250 ✅:1250 Watt set wf@fixit com.bitplan.rose % warp -u 3600 ✅:3600 Watt set wf@fixit com.bitplan.rose % warp -u 3650 ✅:3650 Watt set bekomme ich bearbeitet April 19, 2025 at 06:26 von seppl2025 Zitieren
seppl2025 Geschrieben April 19, 2025 at 06:27 Geschrieben April 19, 2025 at 06:27 Nun nehme ich an, dass ich zunächst mal den internen Zähler ebenfalls simulieren / befüllen müssen, damit eine PV-Überschusssteuerung möglich wird. Zitieren
seppl2025 Geschrieben April 19, 2025 at 06:37 Geschrieben April 19, 2025 at 06:37 (bearbeitet) Gerne würde ich im github mir die Issues anschauen und ggf. neue erstellen - inbesondere vermisse ich den issue-Link in der Weboberfläche selbst. Der Bereich: warp3-2etS WARP3 Charger Smart 11kW 2.7.8+67efdb29 sollte IMHO aus Links bestehen die auf die Produkt/Release und Issue-Seiten verweisen bzw auch hier aufs Forum. bearbeitet April 19, 2025 at 06:39 von seppl2025 Zitieren
MatzeTF Geschrieben April 19, 2025 at 12:52 Geschrieben April 19, 2025 at 12:52 Quote Danke für die Hinweise. Im Moment habe ich ja theoretisch zwei Zähler. Den einen kann ich zumindestens schon mal "simulieren". Der andere ist der Warpcharger Zähler, der wird bei mir aber als "Kein Stromzähler angeschlossen" dargestellt. Hast du eine Pro oder Smart? Lade doch mal einen Debug-Report runter (unter System → Ereignis-Log) und hänge ihn hier an. Quote Gestern wollte ich das Laden mit dem simulierten Zähler ausprobieren. Das Ergebnis im Lade log ist aber: 18.04.2025 19:15 Maximum-Voll N/A 13:18:35 N/A Was ist das für eine Meldung? Die sieht nicht aus wie eine Meldung der Wallbox. Quote Wenn ich das live beeinflusse […] Die unterbrochene Linie kommt daher, dass du zu selten Werte lieferst. Die Wallbox möchte sekündlich Werte bekommen, damit PV-Überschussladen ordentlich funktioniert. Ansonsten bedeuten negative Werte Überschuss, der eingespeist wird. Mit positiven Werten wirst du die Wallbox nicht zum Laden bekommen. Quote Nun nehme ich an, dass ich zunächst mal den internen Zähler ebenfalls simulieren / befüllen müssen, damit eine PV-Überschusssteuerung möglich wird. Nö, eine WARP Smart ohne Zähler kann problemlos PV-Überschlussladen machen. Quote Gerne würde ich im github mir die Issues anschauen und ggf. neue erstellen - inbesondere vermisse ich den issue-Link in der Weboberfläche selbst. Der Großteil unserer Nutzer hat von github und Issues keine Ahnung. Die Nutzer ohne Ahnung rufen üblicherweise bei uns an und für die Nutzer mit Ahnung sollte das Forum die erste Anlaufstelle sein. Die Issues auf Github sind für tatsächliche Software-Bugs und geplante Änderungen und Features, die wir nicht vergessen wollen. Anwenderprobleme wie „ich kriege PV-Überschussladen nicht ans Laufen“ gehören da nicht hin. Quote sollte IMHO aus Links bestehen die auf die Produkt/Release und Issue-Seiten verweisen bzw auch hier aufs Forum. Die Idee mit Links auf die Produktseiten und Release-Notes der Firmware gefällt mir. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.