Seite 8 von 15

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Sa 31. Dez 2022, 16:05
von Bogeyof
OK, auch wenn die Daten später mal in einem anderen Measurement oder in einer anderen Datenbank ankommen, so ist die angehängte Änderung Deiner shelly_math.php doch leicht anzupassen, das bekommst Du hin.
Aktuell liest sie aus der Datenbank "solaranzeige" aus den angegebenen Measurements jeweils das Feld "value" und dividiert diese. Die Division jedes Wertes durch 60 ist überflüssig, da sie sich herauskürzt.
Das Ergebnis wird als AktCOP in die Datenbank des Shelly unter dem Measurement WP geschrieben.
Damit sollte es erst einmal funktionieren, analog kannst Du natürlich noch weitere Berechnungen erweitern und speichern...

Ein gutes Neues...

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Sa 31. Dez 2022, 17:13
von RainerL
Lieben Dank, das hört sich gut an.

Ich wünsche Dir auch einen guten Rutsch ins Neue Jahr.

Leider kommt noch ein Syntax Error in Zeile 63 Dort stehen zwei ..
[31-Dec-2022 17:08:08 Europe/Berlin] PHP Parse error: syntax error, unexpected '.', expecting end of file in /var/www/html/shelly_math.php on line 63

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Sa 31. Dez 2022, 17:21
von Bogeyof
Stimmt. Aber wenn Du Deine ursprüngliche shelly_math.php herunterlädst, dann sind die auch schon drin (Zeile 53). Ich habe die nicht hineingeschrieben und ich kann die shelly_math.php ja auch nicht testen (passen die Daten nicht).
Also ich denke das sollte mal heißen, da soll es hin oder da wurde ein Teil herausgenommen. Erst mal die beiden Punkte löschen...

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: So 1. Jan 2023, 23:44
von RainerL
Hallo @bogeyof,

alles Gute zum Neuen Jahr und vielen Dank für Deine Hilfe. Das hätte ich mangels php Kenntnissen nie hinbekommen.
Die Punkte habe ich mir wohl beim Kopieren/Einfügen irgendwie eingehandelt, MCEdit ist da nicht sehr komfortabel.
Erinnert irgendwie an den ersten Norton Commander, wobei der besser zu bedienen war.
Das eigentliche Problem waren aber die Punkte in den Namen der Measurements die der IOB Influx Adapter erzeugt, da IOB den Punkt statt Slash verwendet. Deshalb lief das script nicht.
Habe nun die beiden Datenpunkte in IOB mit einem Alias benannt, so dass ich einen select FROM Alias machen kann der keine Punkte enthält.
Nun läuft es. Hier das Ergebnis. Da siehst Du auch warum mir das wichtig war und Du kennst ja auch die Diskussion aus dem PV Forum.
Dasch_WP.jpg

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Mi 4. Jan 2023, 12:29
von pvToni
RainerL hat geschrieben:
Fr 30. Dez 2022, 20:03
IOB hat einen Influx Adapter um in eine Influx DB zu schreiben.
In der DB Solaranzeige habe ich die Werte drin. Genausogut kann ich sie aber auch in die Influx Shelly schreiben.
Show Measurements aus Solaranzeige gibt aus:

mbus.1.EFE-24650364.data.3-0-Current
mbus.1.EFE-24650364.data.5-0-Current
mbus.1.EFE-24650364.data.7-0-Current
mbus.1.EFE-24650364.data.8-0-Current
mbus.1.EFE-24650364.data.9-0-Current
mqtt.0.shellies.shellyem3-349454747B0A.emeter.1.energy
Frage, wie hast du es gemacht das du von iobroker in die solaranzeige influxdb schreiben kannst?

influxdb.0
2023-01-04 12:26:29.256 error Error: error authorizing query: no user provided
influxdb.0
2023-01-04 12:26:29.253 info Influx DB Version used: 1.x
influxdb.0
2023-01-04 12:26:29.253 info Connecting http://192.168.11.51:8086/ ...
influxdb.0

in der influxdb von solaranzeige ist auth nicht enabled
# auth-enabled = false
hast du das enabled? oder wie hast du es hinbekommen?

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Mo 9. Jan 2023, 14:14
von Bogeyof
Man kann auch mit Grafana eine interaktive Steuerung über Heishamon für die Panasonic WP aufbauen:
Screenshot 2023-01-09 141326.png
In den oberen Feldern können die vorher ausgelesenen Werte auch überschrieben werden und mit den Buttons können diese Werte sowie einige weitere Aktionen dann direkt gesetzt werden. Macht das Bedienen und Testen der WP wieder etwas leichter...

Ich hänge gerne das Dashboard an, aber dieses hat noch einige eigenen Datenfelder, so dass dies ohne Änderung nur bei mir funktionieren kann. Aber man kann sehen, wie die Buttons und die Parameterübergabe sowie der Aufruf von Heishamon funktioniert...

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Mo 9. Jan 2023, 17:10
von RainerL
@pvToni Sorry, habe Deine Frage leider gerade erst gesehen.

Du musst die Instanz der influxdb.0 im IOBroker mit dem User pi und dem Kennwort solaranzeige starten damit Du in die Influx schreiben kannst.

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Di 10. Jan 2023, 08:26
von Bogeyof
Monats- / Jahresübersicht hatte ich noch nicht, habe ich aber in der letzten Stunde mal schnell erstellt:

WP_2022_LT.png

Wie immer sind da natürlich Spezialfelder von mir mit drin, die nicht jeder hat...



Grafana kann leider keine monatlichen Summierungen und hier musste ein Trick her. Ich habe dazu in den Statistikdaten von Solaranzeige Korr1 bis Korr12 eingetragen, mit diesen kann ich ausgehend vom aktuellen Monat immer korrekt die letzten 12 Monate anzeigen. Wenn es also gerade Juli 23 wäre, dann würde er von August 22 bis Juli 23 anzeigen. Immer automatisch. Daher aktuell auch die Anzeige von Januar(23) bis Dezember(22), WP kam erst im Juli, daher sind die Monate ohne Werte automatisch ausgeblendet.



Leider bedeutet dies einen Eingriff in Solaranzeige in die funktionen.inc.php um diese Werte zu speichern (siehe Code, abgesetzter Teil mit while-Schleife). Man könnte sich die Werte aber auch mit einer _math.php in eine beliebige Datenbank schreiben und im Dashboard dann halt die Variablen aus dieser Datenbank versorgen (um den Update von Solaranzeige nicht zu stören, bei mir egal, ich habe schon zu viele Abweichungen).

Code: Alles auswählen

  /**************************************************************************
  //  Daten in die lokale Influx Datenbank schreiben
  //
  //
  **************************************************************************/
  function influx_local( $daten ) {
    $query = "";
    if (!isset($daten["InfluxDBLokal"])) {
      $daten["InfluxDBLokal"] = "solaranzeige";
    }
    if (!isset($daten["zentralerTimestamp"])) {
      $daten["zentralerTimestamp"] = time( );
    }
    //  Jetzt müssen die Daten in die lokale InfluxDB übertragen werden.
    //
    //  Zuerst die Statistikdaten übertragen. Einmal am Tage um 23:58 Uhr.
    if (date( "i" ) == '00' or date( "i" ) == '10' or date( "i" ) == '20' or date( "i" ) == '30' or date( "i" ) == '40' or date( "i" ) == '50') {
      // if (1 == 1) {
      //$this->log_schreiben("Aktuelle Statistik:\n".print_r($daten,1),"   ",9);
      
      $this->log_schreiben( "Alle 10 Minuten werden die Statistikdaten übertragen.", "   ", 5 );
      $query = "Statistik Bezeichnung=\"WhTag\",Datum=\"".$daten['Datum']."\",Woche=".$daten['Woche'].",Monat=".$daten['Monat'];
      $query .= ",Wert=".$daten["WattstundenGesamtHeute"].",Wochentag=\"".$daten['Wochentag']."\"";
      $query .= ",Heute_TS=".mktime( 0, 0, 0, date( "m" ), date( "d" ), date( "Y" ))."000000000";
      $query .= ",Gestern_TS=".mktime( 0, 0, 0, date( "m" ), date( "d" ) - 1, date( "Y" ))."000000000";
      $query .= ",DiesesJahr_TS=".mktime( 0, 0, 0, 1, 1, date( "Y" ))."000000000";
      $query .= ",LetztesJahr_TS=".mktime( 0, 0, 0, 1, 1, date( "Y" ) - 1 )."000000000";
      $query .= ",DieserMonat_TS=".mktime( 0, 0, 0, date( "m" ), 1, date( "Y" ))."000000000";
      $query .= ",LetzterMonat_TS=".mktime( 0, 0, 0, date( "m" ) - 1, 1, date( "Y" ))."000000000";
      $query .= ",DieseWoche_TS=".strtotime( "last monday", strtotime( "tomorrow" ))."000000000";
      $query .= ",LetzteWoche_TS=".strtotime( "last monday -7 days", strtotime( "tomorrow" ))."000000000";
      $query .= ",HeuteVJ_TS=".mktime( 0, 0, 0, date( "m" ), date( "d" ), date( "Y" ) - 1 )."000000000";
      $query .= ",TagImMonat=".date( "j" );
      $query .= ",TagImJahr=".(date( "z" ) + 1);
      $query .= ",Jahr=".date( "Y" );
      $query .= ",Stunde=".date( "G" );




      // Monatskorrektur für Jahresübersicht
      $ix = date("n") + 1;
      $i = 1;
      do {
        if ($i < $ix) {
           $query .= ",Korr".$i."=0"; 
          }
          else {
           $query .= ",Korr".$i."=1"; 
        }   
        $i++;
      } while ($i < 13);      



      $query .= "  ".$daten["zentralerTimestamp"];

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Mi 11. Jan 2023, 23:45
von RainerL
@bogeyof: Sehr sehr cool, vielen vielen Dank. Das ist schon hoher Level den Du da aus der Feder fließen lässt. Hatte zu dem Influx Problem mit den Jahreswerten gelesen und erkannt das ich da nichts hinbekomme. Deine Lösung habe ich problemlos zum laufen gebracht. Dank dafür.

Re: Panasonic Aquarea Wärmepumpe auslesen und steuern

Verfasst: Do 19. Jan 2023, 23:26
von skalp
hi,
ist NodeRed_Heishamon_control bekannt ? Dashboard und Steuerung sind da schon dabei
Grüße