user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Welche Geräter können mit dieser Anzeige benutzt werden?
Laderegler, Wallboxen, Batterie-Management-Systeme, WLAN Schalter mit Tasmota Firmware und Wechselrichter

Moderator: Ulrich

Ruhz69
Beiträge: 67
Registriert: Fr 28. Jan 2022, 19:41
Hat sich bedankt: 7 Mal
Danksagung erhalten: 4 Mal

Re: user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Beitrag von Ruhz69 »

Vielen Dank für die Antwort, ich komme im Augenblick leider nicht dazu.
Ich melde mich, wenn ich es ausprobiert habe.

Rüdiger

Ruhz69
Beiträge: 67
Registriert: Fr 28. Jan 2022, 19:41
Hat sich bedankt: 7 Mal
Danksagung erhalten: 4 Mal

Re: user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Beitrag von Ruhz69 »

Dann bin ich endlich dazu gekommen, deine Tips auszuprobieren:

der code Schnipsel heisst jetzt:

Code: Alles auswählen

//Ab hier Mittelwertbildung der Einspeisung                          
$query = "SELECT%20moving_average(".$Zaehlerleisung.",7)%20from%20".$Datenbank3."..".$Zaehlermeasurement."%20order%20by%20time%20desc%20limit%201";
    log_schreiben( "Datenbank-Query: ".$query, " ", 3 );             
if(false === ($data = file_get_contents("http://localhost:8086/query?db=".$Datenbank3."&q=".$query))){<>
    log_schreiben( "Fehler! Kann InfluxDB nicht abfragen:Kein Mittelwert: ".$query, "   ", 3 );
    $Einspeisungvz = influxDB_lesen( $Datenbank3, "AC");             
    $Einspeisung = ($Einspeisungvz["Einspeisung"] * (-1));
} else {        // daten gelesen
    $ergebnis = json_decode( $data, true );
    $funktionen->log_schreiben(print_r($data,true), "   ", 5 );
    log_schreiben(print_r($ergebnis,true), "   ", 3 );
    $Einspeisung_mittel = $ergebnis["results"][0]["series"][0]["values"][0][1];
    $Einspeisung = ($Einspeisung_mittel * (-1));
}
Es gibt dann den Log aus log_schreiben( "Datenbank-Query: ".$query, " ", 3 );
Datenbank ist vzlogger Measurement ist AC, das passt soweit.

INFO Datenbank-Query: SELECT%20moving_average(Leisung,7)%20from%20vzlogger..AC%20order%20by%20time%20desc%20limit%201

dann kommt ein Fehler aus der dem zweiten log (Zeile 170 in der auto-math.php): $funktionen->log_schreiben(print_r($data,true), " ", 5 ); und zwar im php log:

[31-Dec-2023 16:05:04 Europe/Berlin] PHP Notice: Undefined variable: funktionen in /var/www/html/auto-math.php on line 170
[31-Dec-2023 16:05:04 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function log_schreiben() on null in /var/www/html/auto-math.php:170
Stack trace:
#0 /var/www/html/automation.php(276): include()
#1 {main}
thrown in /var/www/html/auto-math.php on line 170

damit kann ich relativ wenig anfangen. Sind irgendwo Funktionen definiert auf die man bei der Automation nicht zugreifen kann?

viele Grüsse

Rüdiger

gzi
Beiträge: 153
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 16 Mal
Danksagung erhalten: 24 Mal

Re: user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Beitrag von gzi »

In der Solaranzeige-Umgebung gibt es eine Funktionsbibliothek. Diese muss man wie folgt einbinden.

Code: Alles auswählen

require_once($Pfad."/phpinc/funktionen.inc.php");
if (!isset($funktionen)) {
  $funktionen = new funktionen();
}
Will man dann eine der dort bereitgestellten Funktionen nutzen, dann geht das so:

$funktionen->log_schreiben( "xxxxx", "XX ", 3 );

Teilweise hast Du das ohnhin in Deinem Code so stehen. Schau Dir meine

Einfach hinzuschreiben

log_schreiben( "xxxxx", "XX ", 3 );

funktioniert nicht. Schau Dir das in meiner user_device.php an.
Raspi 3B, Hybrid Must PV18-3024 VHM, Hoymiles HM-800 , Nachteinspeisung, Flex-BKW, AhoyDTU, Smart Meter DTSU666-H, DIY Akku 6,7 KWh, DalyBMS2MQTT, Victron2MQTT,Architektur, HomeMatic CCU. Autor: Solaranlage Do-It-Yourself

Ruhz69
Beiträge: 67
Registriert: Fr 28. Jan 2022, 19:41
Hat sich bedankt: 7 Mal
Danksagung erhalten: 4 Mal

Re: user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Beitrag von Ruhz69 »

Vielen Dank für die PHP Nachhilfe,

bei der automation scheint das mit dem log anders zu laufen, die logs bekomme ich nur wenn ich es wie im code mache. Dann gibt es im PHP code nur noch den Fehler: Undefined index: series in /var/www/html/auto-math.php

Code: Alles auswählen

$Zaehlerleistung = "Leistung";
 $Zaehlermeasurement = "AC";

//Ab hier Mittelwertbildung der Einspeisung

//require_once($Pfad."/phpinc/funktionen.inc.php");
//if (!isset($funktionen)) {
//  $funktionen = new funktionen();
//}
$query = "SELECT%20moving_average(".$Zaehlerleistung.",7)%20from%20".$Datenbank3."..".$Zaehlermeasurement."%20order%20by%20time%20desc%20limit%201";
    log_schreiben( "Datenbank-Query: ".$query, " ", 3 );
if(false === ($data = file_get_contents("http://localhost:8086/query?db=".$Datenbank3."&q=".$query))){<>
    log_schreiben( "Fehler! Kann InfluxDB nicht abfragen:Kein Mittelwert: ".$query, "   ", 3 );
    $Einspeisungvz = influxDB_lesen( $Datenbank3, "AC");
    $Einspeisung = ($Einspeisungvz["Einspeisung"] * (-1));
} else {        // daten gelesen
    $ergebnis = json_decode( $data, true );
    log_schreiben(print_r($data,true), "   ", 3 );
    log_schreiben(print_r($ergebnis,true), "   ", 3 );
    $Einspeisung_mittel = $ergebnis["results"][0]["series"][0]["values"][0][1];
    $Einspeisung = ($Einspeisung_mittel * (-1));
}
Als automations log kommen jetzt:
01.01. 18:05:03 INFO Datenbank-Query: SELECT%20moving_average(Leisung,7)%20from%20vzlogger..AC%20order%20by%20time%20desc%20limit%201
01.01. 18:05:03 INFO {"results":[{"statement_id":0}]}

01.01. 18:05:03 INFO Array
(
[results] => Array
(
[0] => Array
(
[statement_id] => 0
)

)

)
Edit: Ich habe den Fehler gefunden und es funktioniert jetzt auch: Wenn man nach einem Wert für Leistung sucht, sollte man nicht "Leisung" schreiben. Ich weiss schon warum ich nicht Programmierer geworden bin. Was bin ich schuldig? (Der code ist korrigiert)

$ergebnis habe ich nirgens definiert, hab ich bei dir aber auch nicht gefunden (das heist aber nicht viel bei mir).
Ich überlege schon, ob ich mir den Schnipsel nicht in die Geraete-math.php kopieren soll. Da müsste es ja passen.

viele Grüsse
Rüdiger

Jaegersolar
Beiträge: 2
Registriert: Mi 29. Nov 2023, 17:43

Einbindung Daly BMS

Beitrag von Jaegersolar »

Hallo,
vielen Dank für die rasche und vor allem sehr ausführliche Antwort.
Leider beantwortet das aber nicht so vollumfänglich meine Frage, daher konkretisiere ich mein Problem nochmal: So wie ich es verstehe gibt es ja bereits die Möglichkeit ein BMS (von Daly) in der Solaranzeige zu implementieren (über den Regler 57). Ich möchte das BMS (absichtlich) nicht über WLAN anschließen sondern ganz "einfach" über ein UART/USB-Kabel. Ein solches liegt mir vor.
Da aber Daly als Bemerkung zu dem Kabel meinte, man müsse noch einen Isolator (https://lifepo.de/products/isolator) anschließen stelle ich mir die Frage, ob ich ein solches Teil für 100 Euro brauche und dann funktioniert es am Ende nicht. Hat also jemand ein Daly-BMS in Betrieb mit einem UART-Kabel und wie ist das genau angeschlossen (an den Raspi)?
In weiteren Beiträgen habe ich im Forum gelesen, man müsse ein FTDI-Adapter anschließen. Ist der unbedingt nötig? Wenn "ja" - dann müsste ich den USB-Stecker von dem einen Ende des UART-Kabels abtrennen und müsste dann wissen, welchen Draht ich an welche Klemme des FTDI's anschließen muss. Gibt es dazu Infos? - Herzlichen Dank!! Gruß Gregor

gzi
Beiträge: 153
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 16 Mal
Danksagung erhalten: 24 Mal

Re: user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Beitrag von gzi »

Ruhz69 hat geschrieben:
Mo 1. Jan 2024, 18:31
$ergebnis habe ich nirgens definiert,
Brauchst Du in PHP auch nicht. Variablen bekommen ihren Datentyp bei PHP bei der Zuweisung eines Werts. Aber es freut mich, dass es läuft.
Schuldig bist Du nichts, denn ich hab auch was gelernt ;-)

Es lohnt sich vielleicht doch mal ein kleines PHP Tutorial zu absolvieren.
Raspi 3B, Hybrid Must PV18-3024 VHM, Hoymiles HM-800 , Nachteinspeisung, Flex-BKW, AhoyDTU, Smart Meter DTSU666-H, DIY Akku 6,7 KWh, DalyBMS2MQTT, Victron2MQTT,Architektur, HomeMatic CCU. Autor: Solaranlage Do-It-Yourself

gzi
Beiträge: 153
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 16 Mal
Danksagung erhalten: 24 Mal

Re: Einbindung Daly BMS

Beitrag von gzi »

Jaegersolar hat geschrieben:
Di 2. Jan 2024, 16:55
…man müsse noch einen Isolator (https://lifepo.de/products/isolator) anschließen stelle ich mir die Frage, ob ich ein solches Teil für 100 Euro brauche
Ich schätze, da gehts um galvanische Trennung. Warum braucht msn die? Doch nur, wenn das BMS defekt wäre. Aber Erfahrungen damit hab ich keine.

USB Isolatoren gibt es bereits ab 20Eur .
Raspi 3B, Hybrid Must PV18-3024 VHM, Hoymiles HM-800 , Nachteinspeisung, Flex-BKW, AhoyDTU, Smart Meter DTSU666-H, DIY Akku 6,7 KWh, DalyBMS2MQTT, Victron2MQTT,Architektur, HomeMatic CCU. Autor: Solaranlage Do-It-Yourself

gzi
Beiträge: 153
Registriert: Mo 16. Jan 2023, 20:43
Hat sich bedankt: 16 Mal
Danksagung erhalten: 24 Mal

Re: user_device.php - großes Beispiel zur Einbindung eigener Geräte (DTSU666-H und Daly BMS via WLAN)

Beitrag von gzi »

Ich habe nun in meine user_device vier Victron Laderegler inkludiert. Siehe viewtopic.php?t=4753
Raspi 3B, Hybrid Must PV18-3024 VHM, Hoymiles HM-800 , Nachteinspeisung, Flex-BKW, AhoyDTU, Smart Meter DTSU666-H, DIY Akku 6,7 KWh, DalyBMS2MQTT, Victron2MQTT,Architektur, HomeMatic CCU. Autor: Solaranlage Do-It-Yourself

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste