Meldung wenn Akku voll

Hier werden Meldeblöcke, die man in die Datei "meldungen_senden.php" übernehmen kann, veröffentlicht.

Moderator: Ulrich

Antworten
alwiz79
Beiträge: 3
Registriert: Mi 21. Sep 2022, 11:15
Hat sich bedankt: 1 Mal

Meldung wenn Akku voll

Beitrag von alwiz79 »

Hallo Zusammen!
Erst einmal vielen Dank für dieses tolle Projekt.
ich habe alles soweit aufgesetzt, stoße aber bei den Pushover Meldungen an meine Grenzen.

Ich würde gerne bei folgenden Szenario eine Pushmeldung erhalten und habe keine Idee was ich tun muss im Nachrichtenblock:

- Akku ist bei 100%
- die PV produziert Strom
- im Haus wird nicht genug Strom abgenommen, es "droht" Einspeisung

Kann mir da jemand auf die Sprünge helfen?

SVW2
Beiträge: 2
Registriert: So 19. Nov 2023, 23:31

Re: Meldung wenn Akku voll

Beitrag von SVW2 »

Hallo,

hier mal eine Umsetzung für den Status wenn der Accu leer oder 100% gefüllt ist. Die Meldung soll aber erst wieder gesendet werden wenn der Accu in der Zwischenzeit einmal auf mindestens 6% geladen wurde oder auf 90% Ladestand gesunken ist.

Code: Alles auswählen

  /****************************************************************************
  //  NACHRICHTEN BLOCK  START      NACHRICHTEN BLOCK  START      BLOCK  START
  //  NACHRICHTEN BLOCK  START      NACHRICHTEN BLOCK  START      BLOCK  START
  //  NACHRICHTEN BLOCK  START      NACHRICHTEN BLOCK  START      BLOCK  START
  //  Auswertung wenn die Batterie leer ist. Die Nachricht soll aber nur versendet werden wenn die Batterie 
  //  zwischendurch einmal mindestens 6 % Ladung hatte
  //  Hier kann Ihre Abfrage stehen. Diese Datei wird bei einem
  //  Update nicht ueberschrieben.
  ****************************************************************************/
  $rc = $funktionen->po_messageControl( "Batterie_Leer", 0, $GeraeteNummer, $Messengerdienst[1] );
  if ($rc === false or date( "YmdHi", $rc[0] ) <> date( "YmdHi" )) {

    // holen des aktuellen Baterieladezustandes
    $aktuelleDaten["Query"] = "db=".$InfluxDBLokal."&q=".urlencode( "select last(SOC) from Batterie");
    $rc = $funktionen->po_influxdb_lesen( $aktuelleDaten );
    $Meldungen["Batterie_Ladung"] = $rc["results"][0]["series"][0]["values"][0][1];
    $Meldungen["Batterie_Ladung_Time"] = $rc["results"][0]["series"][0]["values"][0][0];	

    // holen des letzten Baterieladezustands bevor leer
    if($Meldungen["Batterie_Ladung"] == 100){
       $letzteDaten["Query"] = "db=".$InfluxDBLokal."&q=".urlencode( "select last(SOC) from Batterie where SOC <= 90");
       $Nachricht = "Haus-Info: Batterie Ladezustand = ".$Meldungen["Batterie_Ladung"]."%. Batterie ist voll"; 	
    }else{
       $letzteDaten["Query"] = "db=".$InfluxDBLokal."&q=".urlencode( "select last(SOC) from Batterie where SOC >= 6");
       $Nachricht = "Haus-Info: Batterie Ladezustand = ".$Meldungen["Batterie_Ladung"]."%. Batterie ist leer";	
    }
    $rc_last = $funktionen->po_influxdb_lesen( $letzteDaten );
    $Meldungen["Batterie_Ladung_Last_Loaded"] = $rc_last["results"][0]["series"][0]["values"][0][1];
    $Meldungen["Batterie_Ladung_Time_Last_Loaded"] = $rc["results"][0]["series"][0]["values"][0][0];	
	
    if (isset($rc["results"][0]["series"][0])) {
        //  Die Query liefert ein Ergebnis, das wird an dieser JSON Variable erkannt.
      if(($Meldungen["Batterie_Ladung"] <=5 or $Meldungen["Batterie_Ladung"] == 100) and $Meldungen["Batterie_Ladung_Time_Last_Loaded"] > $Meldungen["Batterie_Ladung_Time"]){
	$funktionen->log_schreiben( "Batterie ".$Nachricht, "   ", 7 );
      	$funktionen->log_schreiben( strip_tags( $Nachricht ), "*  ", 6 );
  	    for ($Ui = 1; $Ui <= count( $User_Key ); $Ui++) {
        //  Die Nachricht wird an alle Empfänger gesendet, die in der
        //  user.config.php stehen.
               $funktionen->log_schreiben( "Nachricht wird bald versendet an User_Key[".$Ui."] ".$User_Key[$Ui], "*  ", 9 );
               $rc = $funktionen->po_send_message( $API_Token[$Ui], $User_Key[$Ui], $Nachricht, 0, "", $Messengerdienst[$Ui] );
               if ($rc) {
                 $funktionen->log_schreiben( "Nachricht wurde versendet an ".$Messengerdienst[$Ui]." mit Rufnummer: ".$User_Key[$Ui]." und Key: ".$API_Token[$Ui], "   ", 6 );
               }
            $funktionen->log_schreiben( $aktuelleDaten["Query"], "*  ", 9 );
            $rc = $funktionen->po_messageControl( "Batterie_Leer", 1, $GeraeteNummer, $Messengerdienst[1] );
	  }
        }
     }
  }
  /****************************************************************************
  //  NACHRICHTEN BLOCK  STOP      NACHRICHTEN BLOCK  STOP      BLOCK  STOP
  //  NACHRICHTEN BLOCK  STOP      NACHRICHTEN BLOCK  STOP      BLOCK  STOP
  //  NACHRICHTEN BLOCK  STOP      NACHRICHTEN BLOCK  STOP      BLOCK  STOP
  ****************************************************************************/
Wichig ist bei der DB Abfrage die Groß- und Kleinschreibung.

Antworten

Zurück zu „Meldeblöcke für Messenger Meldungen“