Korrektur übermittelter Werte bevor es in die DB geht

Allgemeine Informationen zum Nachbau und zum Forum.
PV-Monitorung / PV Überwachung

Moderator: Ulrich

Flunki
Beiträge: 3
Registriert: Mo 7. Jun 2021, 12:41
Hat sich bedankt: 1 Mal

Korrektur übermittelter Werte bevor es in die DB geht

Beitrag von Flunki »

Moin,
Solaranzeige macht alles was ich brauche, super Sache, danke.

Leider übermittelt mein WR (AX-Serie mit SelbstbauAkku) falsche Werte bezüglich der Batteriekapazität. Ja, klar ist das nur ein Tendenzwert und von vielen Faktoren, wie zB Belastúng, abhängig. Hätte jedoch gerne 0-100% anstatt wie heute 22-70%.

Damit auch bei der MQTT-Übertragung an Homeassist eine mögliche Korrektur greift suche ich eine Idee wie ich den Wert möglichst beim Einlesen vom WR direkt manipulieren kann. Die Korrektur würde wie folgt lauten: (Kapazität% - 22) * 2,08 = korrekter Wert.
Gibt es da eine Möglichkeit?

Bitte helft mir auf die Sprünge
Danke im Voraus

Hat se nicht alle
Beiträge: 119
Registriert: Fr 6. Aug 2021, 07:27
Hat sich bedankt: 16 Mal
Danksagung erhalten: 16 Mal

Re: Korrektur übermittelter Werte bevor es in die DB geht

Beitrag von Hat se nicht alle »

/edit/ Die Lösung heißt _math.php und gibt es schon. Somit ist mein Beitrag obsolet
Infini 10k - 15kWp - 16kW LiFePO4 - JK BMS - SDM630 - 10kW WP

Bogeyof
Beiträge: 1116
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 23 Mal
Danksagung erhalten: 137 Mal

Re: Korrektur übermittelter Werte bevor es in die DB geht

Beitrag von Bogeyof »

Im Prinzip sehr einfach lösbar als 2 Zeiler mit einer xxx_math.php passend zum Wechselrichter. Einfach mal hier nach der Dokumentation suchen oder Themen zur _math.php ansehen...

Flunki
Beiträge: 3
Registriert: Mo 7. Jun 2021, 12:41
Hat sich bedankt: 1 Mal

Re: Korrektur übermittelter Werte bevor es in die DB geht

Beitrag von Flunki »

Hey Prima. Danke für den Tipp mit der _math.php. Da werde ich mich mal reinlesen.

Bogeyof
Beiträge: 1116
Registriert: Mi 13. Mai 2020, 10:04
Hat sich bedankt: 23 Mal
Danksagung erhalten: 137 Mal

Re: Korrektur übermittelter Werte bevor es in die DB geht

Beitrag von Bogeyof »

Einfacher Test, du erzeugst die Datei /var/www/html/ax_wechselrichter_math.php und schreibst diese einzelne Zeile dort rein:

Code: Alles auswählen

$aktuelleDaten["Batteriekapazitaet"] = ($aktuelleDaten["Batteriekapazitaet"] - 22) * 2.08;
oder wie auch immer Dein Datenfeld für den SOC heißt...

Da in der ax_wechselrichter.php leider die Reihenfolge der Bearbeitung ungünstig ist, werden die MQTT-Daten schon gesendet und erst danach wird die _math.php durchlaufen, damit kommt die Änderung nur in der Datenbank aber nicht in MQTT an. Du musst zwischenzeitlich die ax_wechselrichter.php anpassen und die Zeilen für mqtt_senden und die ax_wechselricher_math.php tauschen, damit es richtig funktioniert:

Code: Alles auswählen

    /**************************************************************************
    //  User PHP Script, falls gewünscht oder nötig
    **************************************************************************/
    if (file_exists( "/var/www/html/ax_wechselrichter_math.php" )) {
      include 'ax_wechselrichter_math.php'; // Falls etwas neu berechnet werden muss.
    }

    /**************************************************************************
    //  Alle ausgelesenen Daten werden hier bei Bedarf als mqtt Messages
    //  an den mqtt-Broker Mosquitto gesendet.
    //  Achtung! Die Übertragung dauert ca. 30 Sekunden!
    **************************************************************************/
    if ($MQTT and strtoupper($MQTTAuswahl) != "OPENWB") {
      $funktionen->log_schreiben( "MQTT Daten zum [ $MQTTBroker ] senden.", "   ", 1 );
      require ($Pfad."/mqtt_senden.php");
    }
Also oben in der ax_wechselrichter.php die 9 Zeilen rausnehmen und unter dem Block für ax_wechselrichter_math.php wieder einfügen. Anschließend sollte es wie oben aussehen...


@Ulrich, leider sind in der ax_wechselrichter.php die Zeilen für _math.php nach mqtt_senden, das müsste vorher durchlaufen werden. In allen anderen WR_php, die ich angesehen habe ist diese Reihenfolge schon richtig, nur hier noch nicht...

Flunki
Beiträge: 3
Registriert: Mo 7. Jun 2021, 12:41
Hat sich bedankt: 1 Mal

Re: Korrektur übermittelter Werte bevor es in die DB geht

Beitrag von Flunki »

Prima. Werde ich mal machen. Danke Dir

Wer ist online?

Mitglieder in diesem Forum: Sushiman und 1 Gast