Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. HomeZecke

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Profile
    • Following 0
    • Followers 0
    • Topics 25
    • Posts 140
    • Best 7
    • Groups 2

    HomeZecke

    @HomeZecke

    8
    Reputation
    80
    Profile views
    140
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    HomeZecke Follow
    Pro Starter

    Best posts made by HomeZecke

    • RE: [Tutorial] PZEM-004T 3 Phasen Überwachung

      Hallo,

      da es Nachfragen wegen der von mir erstellten Firmware gab, habe ich sie hier veröffentlicht. Folgendes gibt es zu beachten:

      1. Ich hafte nicht für Schäden die durch Benutzung meiner Software entstehen könnten! Nutzung auf eigene Gefahr!
      2. Ich biete nur bedingt support! (Je nach Laune und Zeit😁 )
      3. Veränderungen am Quellcode können gerne vorgenommen und hier veröffentlicht werden

      Kurzanleitung:

      Es gibt keine Konfigurationsmöglichkeit. Die Daten für das eigene Netzwerk müssen im Quellcode angegeben werden. Benötigt werden die SSID das Passwort und die IP des MQTT Brokers. Eine neue Firmware kann über OTA geflasht werden, um den Wemos nicht immer wieder ausbauen zu müssen. Über "http://pzem-webupdate.local/update" sollte das gehen.
      Angeschlossen werden die RX und TX Anschlüsse der PZEMs an folgende Pins (Wemos mini!):
      PZEM 1 D1,D2
      PZEM 2 D4,D3
      PZEM 3 D5,D6
      An D7 kann eine Status LED angeschlossen werden. Die signalisiert den Verbindungsaufbau zum Wlan und bzw Broker.

      Nach dem Flashen und Starten gibt es unter IOBroker MQTT den neuen Datenpunkt "ENERGIE" Dort gibt es dann alle Daten zu jeder Phase und die Gesamtwerte. Die einzigen Werte die man ändern kann sind "PZEM-Reset" und "Verbrauchs-Startwert"

      PZEM-Reset : Wird dieser auf true gesetzt, wird der Energiezähler aller 3 PZEM-Module auf 0 gesetzt.
      Verbrauchs-Startwert: Hier kann der aktuelle Zählerstand des "echten" Hausstromzählers angegeben werden. Damit kann man den Datenpunkt "PZEM-Verbrauch" mit dem Hauszähler synchronisieren.

      Viel Spaß!

      //####################################################################################
      //####################################################################################
      //
      //    PZEM Energiemessgeräterfassung mit WEMOS  von HomeZecke   v1.1 stand 30.03.2020
      //    --------------------------------------------------------------------------
      //     v 1.0      Testphase first release 			          -05.03.2020
      //     v 1.1      Zählerstartwert kann festgelegt werden 		  -30.03.2020			
      //				 
      //     ToDo:      Online Config für Wlan / MQTT usw. hinzuf.
      //
      //     	
      //			  
      //####################################################################################
      //####################################################################################
      
      #include <Arduino.h>
      #include <ESP8266WiFi.h>
      #include <WiFiClient.h>
      #include <ESP8266WebServer.h>
      #include <ESP8266mDNS.h>
      #include <ESP8266HTTPUpdateServer.h>
      #include <Ticker.h>
      #include <PubSubClient.h>
      #include <PZEM004Tv30.h>
      
      //Hier die persönlichen Daten eintragen!
      //---------------------------------------------
      const char* SSID = "WLAN-SSID";
      const char* PSK =  "PASSWORT";
      const char* MQTTserver = "192.168.0.0";
      const uint16_t port = 1883;
      //---------------------------------------------
      const char* version = "Version 1.1";
      const char* host = "PZEM-webupdate";
      const int STATUS_LED = 13;  //D7 (Wemos D1 Mini)
      
      float start_verbrauch = 0;
      float diff_verbrauch = 0;
      float old_spannung_pzem1;
      float old_frequenz_pzem1;
      float old_stromstaerke_pzem1;
      float old_verbrauch_pzem1;
      float old_leistung_pzem1;
      float old_pf_pzem1;
      float old_spannung_pzem2;
      float old_frequenz_pzem2;
      float old_stromstaerke_pzem2;
      float old_verbrauch_pzem2;
      float old_leistung_pzem2;
      float old_pf_pzem2;
      float old_spannung_pzem3;
      float old_frequenz_pzem3;
      float old_stromstaerke_pzem3;
      float old_verbrauch_pzem3;
      float old_leistung_pzem3;
      float old_pf_pzem3;
      float old_spannung_gesamt;
      float old_stromstaerke_gesamt;
      float old_leistung_gesamt;
      float old_verbrauch_gesamt;
      float old_frequenz_gesamt;
      float old_pf_gesamt;
      float old_PZEM_verbrauch;
      
      
      //---functions / callbacks
      void MQTTcallback(char* topic, byte* payload, unsigned int length);
      void pzem_reset();
      void pzem_read();
      void set_counter(float counterStart);
      
      
      //-Klassen definieren
      ESP8266WebServer httpServer(80);
      ESP8266HTTPUpdateServer httpUpdater;
      
      WiFiClient MY_NETClient_1;
      PubSubClient MQTTClient(MY_NETClient_1);
      
      Ticker myTimer1(pzem_read,5000); //Wie oft sollen die Daten aktualisiert werden? (alle 5 Sek.)
      
      PZEM004Tv30 pzem_1(5, 4);    //D1,D2  Wemos D1 Mini L1
      PZEM004Tv30 pzem_2(2, 0);    //D4,D3                             L2
      PZEM004Tv30 pzem_3(14, 12);  //D5,D6                             L3 
      
      
      //=======================================================================================================================
      //MQTT CallBack
      //=======================================================================================================================
      void MQTTcallback(char* topic, byte* payload, unsigned int length)
      {
       
        char my_payload[length+1];  // nen string machen, länge eins mehr wegen nullterminierung
        float counter_start;
        
        Serial.print(topic);
        Serial.print(" : ");
        
        // Topic PZEMreset----------------------------------------------------------------------------------------
        if (strcmp(topic,"Energie/PZEM-Reset") == 0 )
            {
              
                for (unsigned int i = 0; i < length; i++)  // jedes einzelne byte in einen buchstaben umwandeln
                  {              
                     my_payload[i] = (char)payload[i];   // (char)100 wäre zb ein "d"
                  };
      
                my_payload[length] = '\0';              // nullterminierung
                Serial.println(my_payload);
                
                if (strcmp(my_payload,"true") == 0)
                  {
                      pzem_reset();                //Energie an den PZEM's resetten
                  }
              
            }
      
        // Topic Verbrauchs-Startwert------------------------------------------------------------------------------
        if (strcmp(topic,"Energie/Verbrauchs-Startwert") == 0 )
            {
              
                for (unsigned int i = 0; i < length; i++)  // jedes einzelne byte in einen buchstaben umwandeln
                  {              
                     my_payload[i] = (char)payload[i];   // (char)100 wäre zb ein "d"
                  };
      
                my_payload[length] = '\0';              // nullterminierung
                Serial.println(my_payload);
                counter_start = atof(my_payload);    // nen float aus der payload machen
                
                if (counter_start != start_verbrauch)
                  {
                    start_verbrauch = counter_start;
                    set_counter(counter_start); // func set_couter zum setzen aufrufen
                  }
      
               
      
              
            }      
      
      }
      
      //=======================================================================================================================
      //WLan -Verbindung aufbauen
      //=======================================================================================================================
      void initWiFi()
      {
      
          Serial.println("");
          Serial.print("Wifi connect...");
          WiFi.begin(SSID, PSK);
      
          while (WiFi.status() != WL_CONNECTED)
            {
              digitalWrite(STATUS_LED,!digitalRead(STATUS_LED));
              Serial.print(".");   
              delay(700);
            };
      
          Serial.print("Verbunden!");
          WiFi.mode(WIFI_STA);
      
      }
      
      
      
      //=======================================================================================================================
      //MQTT -Verbindung aufbauen
      //=======================================================================================================================
      void initMQTT(){
      
         
          MQTTClient.setServer(MQTTserver,port);
          MQTTClient.setCallback(MQTTcallback);
      
          Serial.println("");
          Serial.print("MQTT verbinden...");
      
          //--Verbindungsloop
          while( !MQTTClient.connect("Energie_PZEM") ) 
            {
              digitalWrite(STATUS_LED,!digitalRead(STATUS_LED));
              Serial.print("*");  
              delay(100);
            };
      
          digitalWrite(STATUS_LED,false);   
          Serial.print("MQTT ist verbunden!"); 
      
          //--Topics abbonieren---------------------------------------------------- 
          if (MQTTClient.subscribe("Energie/PZEM-Reset"))
            {
                  Serial.println("MQTT : Energie: Reset aboniert"); 
            };
      
          if (MQTTClient.subscribe("Energie/Verbrauchs-Startwert"))
            {
                  Serial.println("MQTT : Energie/Verbrauchs-Startwert aboniert"); 
            }; 
      }
      
      
      
      //=======================================================================================================================
      //PZEM Module auslesen und publishen
      //=======================================================================================================================
      void pzem_read(){
      
        float spannung_gesamt;
        float stromstaerke_gesamt;
        float leistung_gesamt;
        float verbrauch_gesamt;
        float frequenz_gesamt;
        float pf_gesamt;
        float PZEM_verbrauch = 0;
      
        float spannung_pzem1 = pzem_1.voltage();
      	float stromstaerke_pzem1 = pzem_1.current();
      	float leistung_pzem1 = pzem_1.power();
      	float verbrauch_pzem1 = pzem_1.energy();
      	float frequenz_pzem1 = pzem_1.frequency();
      	float pf_pzem1 = pzem_1.pf();
      	
      	float spannung_pzem2 = pzem_2.voltage();
      	float stromstaerke_pzem2 = pzem_2.current();
      	float leistung_pzem2 = pzem_2.power();
      	float verbrauch_pzem2 = pzem_2.energy();
      	float frequenz_pzem2 = pzem_2.frequency();
      	float pf_pzem2 = pzem_2.pf();
      	
      	float spannung_pzem3 = pzem_3.voltage();
      	float stromstaerke_pzem3 = pzem_3.current();
      	float leistung_pzem3 = pzem_3.power();
      	float verbrauch_pzem3 = pzem_3.energy();
      	float frequenz_pzem3 = pzem_3.frequency();
      	float pf_pzem3 = pzem_3.pf();	
      
       // char* Temp_String = "           ";
        char Temp_String[12];
      
        if(!isnan(spannung_pzem1) && old_spannung_pzem1 != spannung_pzem1)
          { 
            dtostrf(spannung_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/SpannungL1", Temp_String);
            old_spannung_pzem1 = spannung_pzem1;
          }
      
        if(!isnan(spannung_pzem2) && old_spannung_pzem2 != spannung_pzem2)
          { 
            dtostrf(spannung_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/SpannungL2", Temp_String);
            old_spannung_pzem2 = spannung_pzem2;
          }
      
        if(!isnan(spannung_pzem3) && old_spannung_pzem3 != spannung_pzem3)
          { 
            dtostrf(spannung_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/SpannungL3", Temp_String);
            old_spannung_pzem3 = spannung_pzem3;
          }
      
        if(!isnan(stromstaerke_pzem1) && old_stromstaerke_pzem1 != stromstaerke_pzem1)
          { 
            dtostrf(stromstaerke_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/StromstaerkeL1", Temp_String);
            old_stromstaerke_pzem1 = stromstaerke_pzem1;
          }
      
        if(!isnan(stromstaerke_pzem2) && old_stromstaerke_pzem2 != stromstaerke_pzem2)
          { 
            dtostrf(stromstaerke_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/StromstaerkeL2", Temp_String);
            old_stromstaerke_pzem2 = stromstaerke_pzem2;
          }
      
        if(!isnan(stromstaerke_pzem3) && old_stromstaerke_pzem3 != stromstaerke_pzem3)
          { 
            dtostrf(stromstaerke_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/StromstaerkeL3", Temp_String);
            old_stromstaerke_pzem3 = stromstaerke_pzem3;
          }
      
        if(!isnan(leistung_pzem1) && old_leistung_pzem1 != leistung_pzem1)
          { 
            dtostrf(leistung_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/LeistungL1", Temp_String);
            old_leistung_pzem1 = leistung_pzem1;
          }
      
        if(!isnan(leistung_pzem2) && old_leistung_pzem2 != leistung_pzem2)
          { 
            dtostrf(leistung_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/LeistungL2", Temp_String);
            old_leistung_pzem2 = leistung_pzem2;
          }
      
        if(!isnan(leistung_pzem3) && old_leistung_pzem3 != leistung_pzem3)
          { 
            dtostrf(leistung_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/LeistungL3", Temp_String);
            old_leistung_pzem3 = leistung_pzem3;
          }
      
        if(!isnan(verbrauch_pzem1) && old_verbrauch_pzem1 != verbrauch_pzem1)
          { 
            dtostrf(verbrauch_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/VerbrauchL1", Temp_String);
            old_verbrauch_pzem1 = verbrauch_pzem1;
          }
      
        if(!isnan(verbrauch_pzem2) && old_verbrauch_pzem2 != verbrauch_pzem2)
          { 
            dtostrf(verbrauch_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/VerbrauchL2", Temp_String);
            old_verbrauch_pzem2 = verbrauch_pzem2;
          }
      
        if(!isnan(verbrauch_pzem3) && old_verbrauch_pzem3 != verbrauch_pzem3)
          { 
            dtostrf(verbrauch_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/VerbrauchL3", Temp_String);
            old_verbrauch_pzem3 = verbrauch_pzem3;
          }
      
        if(!isnan(frequenz_pzem1) && old_frequenz_pzem1 != frequenz_pzem1)
          { 
            dtostrf(frequenz_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/FrequenzL1", Temp_String);
            old_frequenz_pzem1 = frequenz_pzem1;
          } 
      
        if(!isnan(frequenz_pzem2) && old_frequenz_pzem1 != frequenz_pzem2)
          { 
            dtostrf(frequenz_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/FrequenzL2", Temp_String);
            old_frequenz_pzem2 = frequenz_pzem2;
          } 
      
        if(!isnan(frequenz_pzem3) && old_frequenz_pzem3 != frequenz_pzem3)
          { 
            dtostrf(frequenz_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/FrequenzL3", Temp_String);
            old_frequenz_pzem3 = frequenz_pzem3;
          } 
      
       if(!isnan(pf_pzem1) && old_pf_pzem1 != pf_pzem1)
          { 
            dtostrf(pf_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/PowerFactorL1", Temp_String);
            old_pf_pzem1 = pf_pzem1;
          }  
      
       if(!isnan(pf_pzem2) && old_pf_pzem2 != pf_pzem2)
          { 
            dtostrf(pf_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/PowerFactorL2", Temp_String);
            old_pf_pzem2 = pf_pzem2;
          }   
      
       if(!isnan(pf_pzem3) && old_pf_pzem3 != pf_pzem3)
        { 
          dtostrf(pf_pzem3,5 , 2, Temp_String);
          MQTTClient.publish ("Energie/L3/PowerFactorL3", Temp_String);
          old_pf_pzem3 = pf_pzem3;
        }
      
      
       if(!isnan(spannung_pzem1) && !isnan(spannung_pzem2) && !isnan(spannung_pzem3))
        {
          spannung_gesamt = (spannung_pzem1 + spannung_pzem2 + spannung_pzem3) / 3   ;
        }
       else
        {
          spannung_gesamt = 0;
        }
           
       
       if(!isnan(stromstaerke_pzem1) && !isnan(stromstaerke_pzem2) && !isnan(stromstaerke_pzem3))
        {
          stromstaerke_gesamt = stromstaerke_pzem1 + stromstaerke_pzem2 + stromstaerke_pzem3 ;
        }
       else
        {
          stromstaerke_gesamt = 0;
        } 
      
       if(!isnan(leistung_pzem1) && !isnan(leistung_pzem2) && !isnan(leistung_pzem3))
        {
          leistung_gesamt = leistung_pzem1 + leistung_pzem2 + leistung_pzem3 ;
        }
       else
        {
          leistung_gesamt = 0;
        } 
      
       if(!isnan(verbrauch_pzem1) && !isnan(verbrauch_pzem2) && !isnan(verbrauch_pzem3))
        {
          verbrauch_gesamt = verbrauch_pzem1 + verbrauch_pzem2 + verbrauch_pzem3 ;
          PZEM_verbrauch   = verbrauch_gesamt;
          verbrauch_gesamt = start_verbrauch + verbrauch_gesamt - diff_verbrauch;
        }
       else
        {
          verbrauch_gesamt = 0;
        }
      
       if(!isnan(frequenz_pzem1) && !isnan(frequenz_pzem2) && !isnan(frequenz_pzem3))
        {
          frequenz_gesamt = (frequenz_pzem1 + frequenz_pzem2 + frequenz_pzem3) / 3;
        }
       else
        {
          frequenz_gesamt = 0;
        } 
      
       if(!isnan(pf_pzem1) && !isnan(pf_pzem2) && !isnan(pf_pzem3))
        {
          pf_gesamt = (pf_pzem1 + pf_pzem2 + pf_pzem3) / 3 ;
        }
       else
        {
          pf_gesamt = 0;
        }    
      
        if (old_spannung_gesamt != spannung_gesamt)
          {
            dtostrf(spannung_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Spannung",Temp_String);  
            old_spannung_gesamt = spannung_gesamt;
          }
      
        if (old_stromstaerke_gesamt != stromstaerke_gesamt)
          {
            dtostrf(stromstaerke_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Stromstaerke",Temp_String);
            old_stromstaerke_gesamt = stromstaerke_gesamt;  
          }
        
        if (old_leistung_gesamt != leistung_gesamt)
          {
            dtostrf(leistung_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Leistung",Temp_String);    
            old_leistung_gesamt = leistung_gesamt;  
          }
      
        if (old_verbrauch_gesamt != verbrauch_gesamt)
          {
            dtostrf(verbrauch_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Verbrauch",Temp_String); 
            old_verbrauch_gesamt = verbrauch_gesamt;     
          } 
      
        if (old_frequenz_gesamt != frequenz_gesamt)
          {
            dtostrf(frequenz_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Frequenz",Temp_String);
            old_frequenz_gesamt = frequenz_gesamt;      
          } 
       
        if (old_pf_gesamt != pf_gesamt)
          {
            dtostrf(pf_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/PowerFactor",Temp_String); 
            old_pf_gesamt = pf_gesamt;     
          } 
      
        if (old_PZEM_verbrauch != PZEM_verbrauch)
        {
            dtostrf(PZEM_verbrauch,5 , 2, Temp_String);
            MQTTClient.publish("Energie/PZEM-Verbrauch",Temp_String); 
            old_PZEM_verbrauch = PZEM_verbrauch; 
        }
           
      
        digitalWrite(STATUS_LED,true);
        delay(50);
        digitalWrite(STATUS_LED,false);  
      
      };
      
      
      
      //=======================================================================================================================
      //Energieverbrauch in pzem Modulen zurücksetzen
      //=======================================================================================================================
      void pzem_reset()
      {
      
        myTimer1.pause();
        Serial.println("Energieverbrauch wird zurückgesetzt..!");
        
        pzem_1.resetEnergy();
      	pzem_2.resetEnergy();
      	pzem_3.resetEnergy();
        delay(1000);
        
        MQTTClient.publish("Energie/PZEM-Reset","false");
        myTimer1.resume();
      	
      }
      
      
      //=======================================================================================================================
      //Startwert für Verbrauchszähler setzen
      //=======================================================================================================================
      void set_counter(float counterStart){
      
        myTimer1.pause();
        
        float verbrauch_pzem1 = pzem_1.energy();
        float verbrauch_pzem2 = pzem_2.energy();
        float verbrauch_pzem3 = pzem_3.energy();
      
        float verbrauch_gesamt = verbrauch_pzem1 + verbrauch_pzem2 + verbrauch_pzem3;
        diff_verbrauch = verbrauch_gesamt;
      
        myTimer1.resume();
      
      
      
      }
      
      // #####################################################################################################
      // #####################################################################################################
      // Die SETUP Routine
      // #####################################################################################################
      // #####################################################################################################
      void setup()
      {
      
        pinMode(STATUS_LED,OUTPUT);
        digitalWrite(STATUS_LED,LOW);
        
        Serial.begin(9600);
        delay(100);
        Serial.println("");
        Serial.println("PZEM 3-Phasen-Reader");  
        
        Serial.println(version);
        Serial.println("");
      
        initWiFi();
        initMQTT();
      
        MQTTClient.publish("Energie/Info",version);
      
      
        //--OTA Over the Air update einrichten
        MDNS.begin(host);
        httpUpdater.setup(&httpServer);
        httpServer.begin();
        MDNS.addService("http", "tcp", 80);
        Serial.printf("HTTPUpdateServer ready! Open http://%s.local/update in your browser\n", host);
        
       
        //--Timer für PZEM lesen und senden starten
        myTimer1.start();
       
      }
      
      
      // #####################################################################################################
      // #####################################################################################################
      // Die Haupt-  LOOP Routine
      // #####################################################################################################
      // #####################################################################################################
      void loop(){
      
        //--Wifi verloren? dann neu aufbauen
        if (WiFi.status() != WL_CONNECTED)
          {
            initWiFi();
          };
      
        //--MQTT Verbindung verloren? dann neu aufbauen
        if (MQTTClient.state() != MQTT_CONNECTED) 
          {
            initMQTT();
          };
      
        MQTTClient.loop();
        httpServer.handleClient();
        MDNS.update();
        myTimer1.update();
      
      
        delay(10);
      
      
      
      }
      
      posted in Praktische Anwendungen (Showcase)
      HomeZecke
      HomeZecke
    • PZEM-004T-v3 Energie-Monitor

      Hallo,

      mal ne Frage, an die die sich mit Elektrizität sehr gut aus kennen.

      ich habe mir einen PZEM-004 zugelegt, mit dem ich Energie-Werte messen kann. Funktioniert erstmal gut habe die Spannung, Strom, alles da. Wenn ich den Staubsauger aufdrehe ca 1400 Watt angezeigt. Mache ich jetzt aber meinen Desktopcomputer AUS, geht die Watt-Anzeige hoch statt runter??? Beim Backofen gehts auch hoch, Fernseher usw scheint alles zu passen...
      Die Spule dieses Sensors habe ich an meinem Hauptkabel zum Haus um die Null-Leitung gelegt, da ich den Gesammtverbrauch messen möchte. Ist der Null-Leiter die falsche Wahl oder ein Physikalischer Effekt den ich nicht beachte?

      Grüße...

      posted in Hardware
      HomeZecke
      HomeZecke
    • RE: [Neuer Adapter] Hiob (Handy App)

      @mor15euro
      Vielen Dank! Bin jetzt eingeloggt...😀

      posted in Tester
      HomeZecke
      HomeZecke
    • RE: [Tutorial] PZEM-004T 3 Phasen Überwachung

      So...

      für alle die auch an einer Realisierung interessiert sind möchte ich meine Erfahrung nach erfolgreicher Umsetzung mitteilen.

      • Ich rate zu PZEM-Modulen mit Split-Core-Messwandlern. Die haben den Vorteil, dass die Hauptdrähte der Verteileung nicht abgeklemmt werden müssen. Außerdem verhindert man dadurch, dass gefährliche Spannungen (@marcuskl - Danke für diesen wichtigen Hinweis!) an den Messwandlern wenn diese erst bei fertiger Installation um die Drähte gelegt werden. Einen Nachteil gibt es jedoch. Die Rastnase und das Gelenk brechen leicht ab. Bei mir ist bei einem die Rastnase und bei einem das Gelenk abgerissen. Das ist jedoch mit einem Kabelbinder in Sekunden gefixt! Im Gegenteil, ein Messwandler konnte ich sogar nur so um den doch sehr starken Draht kriegen. Die PZEM-Modulen mit Split-Core-Messwandlern kriegt man im Moment für unter 10 Euro sogar bei den "Wilden Weibern"

      • Die Drähte an den Messwandlern habe ich test-weise auf 100 cm verlängert. Ich konnte keine Messabweichungen feststellen. Das sollte für die meisten Anwendungsfälle reichen.

      • Ich habe für die Befestigung der Module auf der Hutschiene Feuchtraum-Installationsdosen aus dem Baumarkt "bei dem es immer was tun gibt" genommen. Es gibt dort welche da passt der PZEM rein als ob es dafür gemacht wurde! Und kosten nur ein paar cent das Stück. Zwei Löcher hinten reingebohrt und mit Kabelbinder an die Hutschiene- Fertig!

      • Wie im Tutorial beschrieben, ist jedes PZEM-Modul an die zu messende Phase anzuschließen. Aber auch der zur Phase gehörende Nullleiter ist zu nutzen. Ich weiß nicht ob es sonst zu Messfehlern kommen kann, aber der FI-Schalter könnte auslösen, wenn ein "falscher" nicht zur jeweiligen Phase gehörender Nullleiter benutzt wird.

      • Ich habe mir eine eigene Firmware für den Wemos geschrieben, da ich bis jetzt ohne Tasmota-Adapter in IOBroker ausgekommen bin und jetzt nur für die Strommessung keinen installieren wollte. Der Wemos mini hat genug Pin-Eingänge um 3 PZEM's zu betreiben. Das ganze geht bei mir über SoftwareSeriel. Damit kann jeder Serielle Ausgang der PZEM's direkt an den Wemos angeschlossen und ausgewertet werden.
        Mir missfiel das Master/Slave-system und das damit nötige Port-Ändern in der Tasmota-Version. Außerdem brauche ich dadurch keine zus. Dioden und Widerstände.

      • DAS WICHTIGSTE! Hochspannung! Ich weiß es nervt. Aber im Installationsschrank sind 3Phasen Wechselstrom. Zwischen den Phasen liegen 400 V Spannung! Wenn man nicht weiß, was man da tut, oder sich auch nur ein wenig unsicher ist. Unbedingt sein lassen! Auch der Hinweis ist nötig, dass man das als Leihe gar nicht darf. Und zugelassen ist der Eibau der PZEM's in den Verteilerkasten sicher auch nicht.

      Wen das dann alles nicht abhalten kann, so kann es dann in Vis aussehen:
      pzem.jpg

      Grüße...

      posted in Praktische Anwendungen (Showcase)
      HomeZecke
      HomeZecke
    • RE: [Tutorial] PZEM-004T 3 Phasen Überwachung

      @elektrickser-de sagte in [Tutorial] PZEM-004T 3 Phasen Überwachung:

      @HomeZecke

      Tolle Arbeit mit deiner Visu. Könntest du diese zur Verfügung stellen? Ich würde diese gerne in meiner Visu nutzen.

      Gruß Elektrickser

      Klar, gerne.

      strom_view.txt

      Grüße...

      posted in Praktische Anwendungen (Showcase)
      HomeZecke
      HomeZecke
    • RE: [Tutorial] PZEM-004T 3 Phasen Überwachung

      @NinjaTurtle85 Morgens,
      Du musst in Funktion initMQTT die Änderungen eintragen.

      Grüße...

      posted in Praktische Anwendungen (Showcase)
      HomeZecke
      HomeZecke
    • RE: [Tutorial] PZEM-004T 3 Phasen Überwachung

      Hallo,

      mal ein kleines Update meiner Firmware.

      Wifi optimiert und hostname auf "PZEM-Powermeter" gesetzt. Updates dann über: "http://pzem-powermeter.local/update"
      Zählerstand wird jetzt erhalten nach einem reset oder Wlan bzw Strom Ausfall.
      Neuer Datenpunkt "Befehl". Dort können Steuerbefehle an den Wemos gesendet werden. Im Moment sind das:
      "sys-reset" : Wemos resetten
      "pzem-reset" : resetten der PZEM Zählerstände
      Der Datenpunkt "PZEM-Reset" fällt damit weg.
      MQTT user und passwort hinzugefügt. Wenn nicht benötigt einfach leer lassen. (Danke @spaceduck)

      Alles weitere bitte weiter oben nachlesen

      //####################################################################################
      //####################################################################################
      //
      //    PZEM Energiemessgeräterfassung mit WEMOS von HomeZecke     v1.2 stand 04.08.2020
      //    --------------------------------------------------------------------------
      //     v 1.0      Testphase first release 			     -05.03.2020
      //
      //     v 1.1      Zählerstartwert kann festgelegt werden 	     -30.03.2020
      //
      //     v 1.2      Wifi optimiert, hostname auf "PZEM-Powermeter"     -04.08.2020
      //                gesetzt. Updates jetzt über:
      //                "http://pzem-powermeter.local/update"
      //                Zählerstand wird jetzt erhalten nach     
      //                reset oder Wlan Ausfall.
      //                Neuer Datenpunkt "Befehl". Dort können Steuer-
      //                befehle an den Wemos gesendet werden:
      //                "sys-reset"  : Wemos resetten
      //                "pzem-reset" : resetten der PZEM Zählerstände
      //                Der Datenpunkt "PZEM-Reset" fällt damit weg.
      //                MQTT user und passwort -Abfrage hinzugef. Wenn nicht
      //                benötigt leer lassen. (Danke @spaceduck)
      //                
      //				 
      //     ToDo:      Online Config für Wlan / MQTT usw. hinzuf.
      //
      //     	
      //			  
      //####################################################################################
      //####################################################################################
      
      #include <Arduino.h>
      #include <EEPROM.h>
      #include <ESP8266WiFi.h>
      #include <WiFiClient.h>
      #include <ESP8266WebServer.h>
      #include <ESP8266mDNS.h>
      #include <ESP8266HTTPUpdateServer.h>
      #include <Ticker.h>
      #include <PubSubClient.h>
      #include <PZEM004Tv30.h>
      
      
      //Hier die persönlichen Daten eintragen!
      //---------------------------------------------
      const char* SSID = "WLAN-SSID";
      const char* PSK =  "PASSWORT";
      const char* MQTTserver = "192.168.0.0";
      const uint16_t port = 1883;
      const char* mqttUser = "";
      const char* mqttPassword = "";
      //---------------------------------------------
      const char* Hostname = "PZEM-Powermeter";
      const int STATUS_LED = 13;  //D7 (Wemos D1 Mini)
      
      typedef struct //Datenstruktur für Eprom config
        {
          float counter_startwert;
          float diff_verbrauch;
        } configdata_typ;
      
      configdata_typ config; //config variable deklarieren 
      
      
      float start_verbrauch = 0;
      float diff_verbrauch = 0;
      float old_spannung_pzem1;
      float old_frequenz_pzem1;
      float old_stromstaerke_pzem1;
      float old_verbrauch_pzem1;
      float old_leistung_pzem1;
      float old_pf_pzem1;
      float old_spannung_pzem2;
      float old_frequenz_pzem2;
      float old_stromstaerke_pzem2;
      float old_verbrauch_pzem2;
      float old_leistung_pzem2;
      float old_pf_pzem2;
      float old_spannung_pzem3;
      float old_frequenz_pzem3;
      float old_stromstaerke_pzem3;
      float old_verbrauch_pzem3;
      float old_leistung_pzem3;
      float old_pf_pzem3;
      float old_spannung_gesamt;
      float old_stromstaerke_gesamt;
      float old_leistung_gesamt;
      float old_verbrauch_gesamt;
      float old_frequenz_gesamt;
      float old_pf_gesamt;
      float old_PZEM_verbrauch;
      
      
      //---functions / callbacks
      void MQTTcallback(char* topic, byte* payload, unsigned int length);
      void pzem_reset();
      void pzem_read();
      void set_counter(float counterStart);
      
      
      //-Klassen definieren
      ESP8266WebServer httpServer(80);
      ESP8266HTTPUpdateServer httpUpdater;
      
      WiFiClient MY_NETClient_1;
      PubSubClient MQTTClient(MY_NETClient_1);
      
      Ticker myTimer1(pzem_read,5000);
      
      PZEM004Tv30 pzem_1(5, 4);    //D1,D2 Grün / Orange Wemos D1 Mini L1
      PZEM004Tv30 pzem_2(2, 0);    //D4,D3                             L2
      PZEM004Tv30 pzem_3(14, 12);  //D5,D6                             L3 
      
      
      
      // #####################################################################################################
      // #####################################################################################################
      // Funktionen
      // #####################################################################################################
      // #####################################################################################################
      
      
      
      //=======================================================================================================================
      //Config ins EPROM speichern
      //=======================================================================================================================
      void saveConfig() {
       
        EEPROM.begin(4095);
        EEPROM.put( 0, config );
        delay(200);
        EEPROM.commit();                    
        EEPROM.end();  
      
      }
      
      
      //=======================================================================================================================
      //Config vom EPROM laden
      //=======================================================================================================================
      void loadConfig() {
       
        EEPROM.begin(4095);
        EEPROM.get( 0, config );
        EEPROM.end();
      }
      
      
      //=======================================================================================================================
      //MQTT CallBack
      //=======================================================================================================================
      void MQTTcallback(char* topic, byte* payload, unsigned int length)
      {
       
        char my_payload[length+1];  // nen string machen, länge eins mehr wegen nullterminierung
        float counter_start;
        
        Serial.print(topic);
        Serial.print(" : ");
        
      
        // Topic Verbrauchs-Startwert------------------------------------------------------------------------------
        if (strcmp(topic,"Energie/Verbrauchs-Startwert") == 0 )
            {
              
                for (unsigned int i = 0; i < length; i++)  // jedes einzelne byte in einen buchstaben umwandeln
                  {              
                     my_payload[i] = (char)payload[i];   // (char)100 wäre zb ein "d"
                  };
      
                my_payload[length] = '\0';              // nullterminierung
                Serial.println(my_payload);
                counter_start = atof(my_payload);    // nen float aus der payload machen
                
                if (counter_start != start_verbrauch)
                  {
                    start_verbrauch = counter_start;
                    config.counter_startwert = start_verbrauch;
                    saveConfig();
                    set_counter(counter_start); // func set_couter zum setzen aufrufen
                  }
      
               
      
              
            } 
      
      
      // Topic Befehl------------------------------------------------------------------------------
        if (strcmp(topic,"Energie/Befehl") == 0 )
            {
              
                for (unsigned int i = 0; i < length; i++)  // jedes einzelne byte in einen buchstaben umwandeln
                  {              
                     my_payload[i] = (char)payload[i];   // (char)100 wäre zb ein "d"
                  };
      
                my_payload[length] = '\0';              // nullterminierung
                Serial.println(my_payload);
                counter_start = atof(my_payload);    // nen float aus der payload machen
                
                if (strcmp(my_payload,"pzem-reset") == 0)
                  {
                      pzem_reset();                //Energie an den PZEM's resetten
                  }
      
                if (strcmp(my_payload,"sys-reset") == 0)
                  {
                     MQTTClient.publish ( "Energie/Befehl", "");
                     delay(1000);
                     ESP.restart();                //Wemos resetten
                  }
      
      
                     
            MQTTClient.publish ( "Energie/Befehl", "");
               
      
              
            }                 
      
      }
      
      //=======================================================================================================================
      //WLan -Verbindung aufbauen
      //=======================================================================================================================
      void initWiFi()
      {
          static int wifiRetryCounter;
      
          Serial.println("");
          Serial.print("Wifi connect...");
          WiFi.persistent(false);
          WiFi.begin(SSID, PSK);
          WiFi.hostname(Hostname);
          WiFi.begin(SSID, PSK);
      
          while (WiFi.status() != WL_CONNECTED)
            {
              ++wifiRetryCounter;
              if (wifiRetryCounter > 90)
                {
                  ESP.restart();
                }
              digitalWrite(STATUS_LED,!digitalRead(STATUS_LED));
              Serial.print(".");   
              delay(700);
            };
      
          Serial.print("Verbunden!");
          WiFi.mode(WIFI_STA);    
          wifiRetryCounter = 0;
      
      }
      
      
      
      //=======================================================================================================================
      //MQTT -Verbindung aufbauen
      //=======================================================================================================================
      void initMQTT(){
      
         
          MQTTClient.setServer(MQTTserver,port);
          MQTTClient.setCallback(MQTTcallback);
      
          Serial.println("");
          Serial.print("MQTT verbinden...");
      
          //--Verbindungsloop
          while( !MQTTClient.connect("Energie_PZEM", mqttUser, mqttPassword))   
            {
              digitalWrite(STATUS_LED,!digitalRead(STATUS_LED));
              Serial.print("*");  
              delay(100);
            };
      
          digitalWrite(STATUS_LED,false);   
          Serial.print("MQTT ist verbunden!"); 
      
          //--Topics abbonieren---------------------------------------------------- 
          if (MQTTClient.subscribe("Energie/PZEM-Reset"))
            {
                  Serial.println("MQTT : Energie: Reset aboniert"); 
            };
      
          if (MQTTClient.subscribe("Energie/Verbrauchs-Startwert"))
            {
                  Serial.println("MQTT : Energie/Verbrauchs-Startwert aboniert"); 
            }; 
      
          if (MQTTClient.subscribe("Energie/Befehl"))
            {
                  Serial.println("MQTT : Energie/Befehl aboniert"); 
            }; 
      
      }
      
      
      
      //=======================================================================================================================
      //PZEM Module auslesen und publishen
      //=======================================================================================================================
      void pzem_read(){
      
        float spannung_gesamt;
        float stromstaerke_gesamt;
        float leistung_gesamt;
        float verbrauch_gesamt;
        float frequenz_gesamt;
        float pf_gesamt;
        float PZEM_verbrauch = 0;
      
        float spannung_pzem1 = pzem_1.voltage();
      	float stromstaerke_pzem1 = pzem_1.current();
      	float leistung_pzem1 = pzem_1.power();
      	float verbrauch_pzem1 = pzem_1.energy();
      	float frequenz_pzem1 = pzem_1.frequency();
      	float pf_pzem1 = pzem_1.pf();
      	
      	float spannung_pzem2 = pzem_2.voltage();
      	float stromstaerke_pzem2 = pzem_2.current();
      	float leistung_pzem2 = pzem_2.power();
      	float verbrauch_pzem2 = pzem_2.energy();
      	float frequenz_pzem2 = pzem_2.frequency();
      	float pf_pzem2 = pzem_2.pf();
      	
      	float spannung_pzem3 = pzem_3.voltage();
      	float stromstaerke_pzem3 = pzem_3.current();
      	float leistung_pzem3 = pzem_3.power();
      	float verbrauch_pzem3 = pzem_3.energy();
      	float frequenz_pzem3 = pzem_3.frequency();
      	float pf_pzem3 = pzem_3.pf();	
      
       // char* Temp_String = "           ";
        char Temp_String[12];
      
        if(!isnan(spannung_pzem1) && old_spannung_pzem1 != spannung_pzem1)
          { 
            dtostrf(spannung_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/SpannungL1", Temp_String);
            old_spannung_pzem1 = spannung_pzem1;
          }
      
        if(!isnan(spannung_pzem2) && old_spannung_pzem2 != spannung_pzem2)
          { 
            dtostrf(spannung_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/SpannungL2", Temp_String);
            old_spannung_pzem2 = spannung_pzem2;
          }
      
        if(!isnan(spannung_pzem3) && old_spannung_pzem3 != spannung_pzem3)
          { 
            dtostrf(spannung_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/SpannungL3", Temp_String);
            old_spannung_pzem3 = spannung_pzem3;
          }
      
        if(!isnan(stromstaerke_pzem1) && old_stromstaerke_pzem1 != stromstaerke_pzem1)
          { 
            dtostrf(stromstaerke_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/StromstaerkeL1", Temp_String);
            old_stromstaerke_pzem1 = stromstaerke_pzem1;
          }
      
        if(!isnan(stromstaerke_pzem2) && old_stromstaerke_pzem2 != stromstaerke_pzem2)
          { 
            dtostrf(stromstaerke_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/StromstaerkeL2", Temp_String);
            old_stromstaerke_pzem2 = stromstaerke_pzem2;
          }
      
        if(!isnan(stromstaerke_pzem3) && old_stromstaerke_pzem3 != stromstaerke_pzem3)
          { 
            dtostrf(stromstaerke_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/StromstaerkeL3", Temp_String);
            old_stromstaerke_pzem3 = stromstaerke_pzem3;
          }
      
        if(!isnan(leistung_pzem1) && old_leistung_pzem1 != leistung_pzem1)
          { 
            dtostrf(leistung_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/LeistungL1", Temp_String);
            old_leistung_pzem1 = leistung_pzem1;
          }
      
        if(!isnan(leistung_pzem2) && old_leistung_pzem2 != leistung_pzem2)
          { 
            dtostrf(leistung_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/LeistungL2", Temp_String);
            old_leistung_pzem2 = leistung_pzem2;
          }
      
        if(!isnan(leistung_pzem3) && old_leistung_pzem3 != leistung_pzem3)
          { 
            dtostrf(leistung_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/LeistungL3", Temp_String);
            old_leistung_pzem3 = leistung_pzem3;
          }
      
        if(!isnan(verbrauch_pzem1) && old_verbrauch_pzem1 != verbrauch_pzem1)
          { 
            dtostrf(verbrauch_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/VerbrauchL1", Temp_String);
            old_verbrauch_pzem1 = verbrauch_pzem1;
          }
      
        if(!isnan(verbrauch_pzem2) && old_verbrauch_pzem2 != verbrauch_pzem2)
          { 
            dtostrf(verbrauch_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/VerbrauchL2", Temp_String);
            old_verbrauch_pzem2 = verbrauch_pzem2;
          }
      
        if(!isnan(verbrauch_pzem3) && old_verbrauch_pzem3 != verbrauch_pzem3)
          { 
            dtostrf(verbrauch_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/VerbrauchL3", Temp_String);
            old_verbrauch_pzem3 = verbrauch_pzem3;
          }
      
        if(!isnan(frequenz_pzem1) && old_frequenz_pzem1 != frequenz_pzem1)
          { 
            dtostrf(frequenz_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/FrequenzL1", Temp_String);
            old_frequenz_pzem1 = frequenz_pzem1;
          } 
      
        if(!isnan(frequenz_pzem2) && old_frequenz_pzem1 != frequenz_pzem2)
          { 
            dtostrf(frequenz_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/FrequenzL2", Temp_String);
            old_frequenz_pzem2 = frequenz_pzem2;
          } 
      
        if(!isnan(frequenz_pzem3) && old_frequenz_pzem3 != frequenz_pzem3)
          { 
            dtostrf(frequenz_pzem3,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L3/FrequenzL3", Temp_String);
            old_frequenz_pzem3 = frequenz_pzem3;
          } 
      
       if(!isnan(pf_pzem1) && old_pf_pzem1 != pf_pzem1)
          { 
            dtostrf(pf_pzem1,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L1/PowerFactorL1", Temp_String);
            old_pf_pzem1 = pf_pzem1;
          }  
      
       if(!isnan(pf_pzem2) && old_pf_pzem2 != pf_pzem2)
          { 
            dtostrf(pf_pzem2,5 , 2, Temp_String);
            MQTTClient.publish ("Energie/L2/PowerFactorL2", Temp_String);
            old_pf_pzem2 = pf_pzem2;
          }   
      
       if(!isnan(pf_pzem3) && old_pf_pzem3 != pf_pzem3)
        { 
          dtostrf(pf_pzem3,5 , 2, Temp_String);
          MQTTClient.publish ("Energie/L3/PowerFactorL3", Temp_String);
          old_pf_pzem3 = pf_pzem3;
        }
      
      
       if(!isnan(spannung_pzem1) && !isnan(spannung_pzem2) && !isnan(spannung_pzem3))
        {
          spannung_gesamt = (spannung_pzem1 + spannung_pzem2 + spannung_pzem3) / 3   ;
        }
       else
        {
          spannung_gesamt = 0;
        }
           
       
       if(!isnan(stromstaerke_pzem1) && !isnan(stromstaerke_pzem2) && !isnan(stromstaerke_pzem3))
        {
          stromstaerke_gesamt = stromstaerke_pzem1 + stromstaerke_pzem2 + stromstaerke_pzem3 ;
        }
       else
        {
          stromstaerke_gesamt = 0;
        } 
      
       if(!isnan(leistung_pzem1) && !isnan(leistung_pzem2) && !isnan(leistung_pzem3))
        {
          leistung_gesamt = leistung_pzem1 + leistung_pzem2 + leistung_pzem3 ;
        }
       else
        {
          leistung_gesamt = 0;
        } 
      
       if(!isnan(verbrauch_pzem1) && !isnan(verbrauch_pzem2) && !isnan(verbrauch_pzem3))
        {
          verbrauch_gesamt = verbrauch_pzem1 + verbrauch_pzem2 + verbrauch_pzem3 ;
          PZEM_verbrauch   = verbrauch_gesamt;
          verbrauch_gesamt = start_verbrauch + verbrauch_gesamt - diff_verbrauch;
        }
       else
        {
          verbrauch_gesamt = 0;
        }
      
       if(!isnan(frequenz_pzem1) && !isnan(frequenz_pzem2) && !isnan(frequenz_pzem3))
        {
          frequenz_gesamt = (frequenz_pzem1 + frequenz_pzem2 + frequenz_pzem3) / 3;
        }
       else
        {
          frequenz_gesamt = 0;
        } 
      
       if(!isnan(pf_pzem1) && !isnan(pf_pzem2) && !isnan(pf_pzem3))
        {
          pf_gesamt = (pf_pzem1 + pf_pzem2 + pf_pzem3) / 3 ;
        }
       else
        {
          pf_gesamt = 0;
        }    
      
        if (old_spannung_gesamt != spannung_gesamt)
          {
            dtostrf(spannung_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Spannung",Temp_String);  
            old_spannung_gesamt = spannung_gesamt;
          }
      
        if (old_stromstaerke_gesamt != stromstaerke_gesamt)
          {
            dtostrf(stromstaerke_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Stromstaerke",Temp_String);
            old_stromstaerke_gesamt = stromstaerke_gesamt;  
          }
        
        if (old_leistung_gesamt != leistung_gesamt)
          {
            dtostrf(leistung_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Leistung",Temp_String);    
            old_leistung_gesamt = leistung_gesamt;  
          }
      
        if (old_verbrauch_gesamt != verbrauch_gesamt)
          {
            dtostrf(verbrauch_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Verbrauch",Temp_String); 
            old_verbrauch_gesamt = verbrauch_gesamt;     
          } 
      
        if (old_frequenz_gesamt != frequenz_gesamt)
          {
            dtostrf(frequenz_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/Frequenz",Temp_String);
            old_frequenz_gesamt = frequenz_gesamt;      
          } 
       
        if (old_pf_gesamt != pf_gesamt)
          {
            dtostrf(pf_gesamt,5 , 2, Temp_String);
            MQTTClient.publish("Energie/PowerFactor",Temp_String); 
            old_pf_gesamt = pf_gesamt;     
          } 
      
        if (old_PZEM_verbrauch != PZEM_verbrauch)
        {
            dtostrf(PZEM_verbrauch,5 , 2, Temp_String);
            MQTTClient.publish("Energie/PZEM-Verbrauch",Temp_String); 
            old_PZEM_verbrauch = PZEM_verbrauch; 
        }
           
      
        digitalWrite(STATUS_LED,true);
        delay(50);
        digitalWrite(STATUS_LED,false);  
      
      };
      
      
      
      //=======================================================================================================================
      //Energieverbrauch in pzem Modulen zurücksetzen
      //=======================================================================================================================
      void pzem_reset()
      {
      
        myTimer1.pause();
        Serial.println("Energieverbrauch wird zurückgesetzt..!");
        
        pzem_1.resetEnergy();
      	pzem_2.resetEnergy();
      	pzem_3.resetEnergy();
        delay(1000);
       
        myTimer1.resume();
      	
      }
      
      
      //=======================================================================================================================
      //Startwert für Verbrauchszähler setzen
      //=======================================================================================================================
      void set_counter(float counterStart){
      
        myTimer1.pause();
        
        float verbrauch_pzem1 = pzem_1.energy();
        float verbrauch_pzem2 = pzem_2.energy();
        float verbrauch_pzem3 = pzem_3.energy();
      
        float verbrauch_gesamt = verbrauch_pzem1 + verbrauch_pzem2 + verbrauch_pzem3;
        diff_verbrauch = verbrauch_gesamt;
      
        config.diff_verbrauch = diff_verbrauch; // ins eprom speichern
        saveConfig();
      
        myTimer1.resume();
      
      
      
      }
      
      // #####################################################################################################
      // #####################################################################################################
      // Die SETUP Routine
      // #####################################################################################################
      // #####################################################################################################
      void setup()
      {
      
        pinMode(STATUS_LED,OUTPUT);
        digitalWrite(STATUS_LED,LOW);
        
        Serial.begin(9600);
        delay(100);
        Serial.println("");
        Serial.println("PZEM 3-Phasen-Reader");  
        
        Serial.println(version);
        Serial.println("");
      
        loadConfig();
        start_verbrauch = config.counter_startwert;
        diff_verbrauch  = config.diff_verbrauch;
      
      
        initWiFi();
        initMQTT();
      
        MQTTClient.publish("Energie/Info",version);
        MQTTClient.publish( "Energie/Befehl", "");
      
      
        //--OTA Over the Air update einrichten
        MDNS.begin(Hostname);
        httpUpdater.setup(&httpServer);
        httpServer.begin();
        MDNS.addService("http", "tcp", 80);
        Serial.printf("HTTPUpdateServer ready! Open http://%s.local/update in your browser\n", Hostname);
        
       
        //--Timer für PZEM lesen und senden starten
        myTimer1.start();
       
      }
      
      
      // #####################################################################################################
      // #####################################################################################################
      // Die Haupt-  LOOP Routine
      // #####################################################################################################
      // #####################################################################################################
      void loop(){
      
        //--Wifi verloren? dann neu aufbauen
        if (WiFi.status() != WL_CONNECTED)
          {
            initWiFi();
          };
      
        //--MQTT Verbindung verloren? dann neu aufbauen
        if (MQTTClient.state() != MQTT_CONNECTED) 
          {
            initMQTT();
          };
      
        MQTTClient.loop();
        httpServer.handleClient();
        MDNS.update();
        myTimer1.update();
      
      
        delay(10);
      
      
      
      }
      
      posted in Praktische Anwendungen (Showcase)
      HomeZecke
      HomeZecke

    Latest posts made by HomeZecke

    • RE: go2rtc installieren und einrichten

      Hallo,

      da auch weg von motioneye bin, habe ich mir go2rtc draufgemacht. Funktioniert!

      Aber zwei Probleme:

      • 1: mein Tablet schaltet nicht mehr das Display dunkel. Ich vermute dass das an dem laufenden Videostream liegt. Stoppe ich ihn nämlich, geht das Tablet in standby. Wie habt ihr das gelöst? (Ich nutze Vis1.)

      • 2: Wenn mein Source Stream wegen schlechter WLan Verbindung zur Kamera mal ausfällt, hält go2rtc an. Kann das dann nur wieder starten, indem ich bei go2rtc Config auf den Button "Save & Restart" drücke.
        Wie kann ich das besser machen?

      Grüße..

      posted in Visualisierung
      HomeZecke
      HomeZecke
    • RE: [gelöst]Admin port blockiert

      @thomas-braun Ja, danke. Durch das entfernen von motion, sind alle ports wieder frei.

      Grüße..

      posted in ioBroker Allgemein
      HomeZecke
      HomeZecke
    • RE: [gelöst]Admin port blockiert

      @homoran

      Danke! Der Tipp mit Motion hat geholfen! Ich habe Motion deinstalliert, und nach reboot waren die Ports wieder frei!
      Ich dachte, wenn Motioneye nicht läuft, dann ist auch motion nicht aktiv.

      Grüße

      posted in ioBroker Allgemein
      HomeZecke
      HomeZecke
    • RE: [gelöst]Admin port blockiert

      @homoran sagte in Admin port blockiert:

      aber wieso ist admin auf 8082?

      Keine Ahnung.. Also ich war's nicht!🙄 Aber wie kann man das wieder hinbiegen? Motioneye ist gestoppt aber wie es aussieht Motion läuft noch. Wie kriege ich das gestoppt, damit der den Admin nicht blockiert?

      Grüße...

      posted in ioBroker Allgemein
      HomeZecke
      HomeZecke
    • RE: [gelöst]Admin port blockiert

      @homoran
      ======== Start marking the full check here =========

      Skript v.2024-05-22
      
      *** BASE SYSTEM ***
       Static hostname: haussteuerung
             Icon name: computer
      Operating System: Debian GNU/Linux 12 (bookworm)
                Kernel: Linux 6.6.31+rpt-rpi-v8
          Architecture: arm64
      
      Model           : Raspberry Pi 4 Model B Rev 1.4
      Docker          : false
      Virtualization  : none
      Kernel          : aarch64
      Userland        : 64 bit
      
      Systemuptime and Load:
       16:00:48 up 2 days,  1:32,  2 users,  load average: 1.63, 1.11, 0.89
      CPU threads: 4
      
      
      *** RASPBERRY THROTTLING ***
      Current issues:
      No throttling issues detected.
      
      Previously detected issues:
      No throttling issues detected.
      
      *** Time and Time Zones ***
                     Local time: Wed 2024-06-12 16:00:48 CEST
                 Universal time: Wed 2024-06-12 14:00:48 UTC
                       RTC time: n/a
                      Time zone: Europe/Berlin (CEST, +0200)
      System clock synchronized: yes
                    NTP service: active
                RTC in local TZ: no
      
      *** Users and Groups ***
      User that called 'iob diag':
      pi
      HOME=/home/pi
      GROUPS=pi adm dialout cdrom sudo audio video plugdev games users input render netdev gpio i2c spi iobroker
      
      User that is running 'js-controller':
      iobroker
      HOME=/home/iobroker
      GROUPS=iobroker tty dialout audio video plugdev bluetooth gpio i2c
      
      *** Display-Server-Setup ***
      Display-Server: true
      Desktop:
      Terminal:       tty
      Boot Target:    multi-user.target
      
      *** MEMORY ***
                     total        used        free      shared  buff/cache   available
      Mem:            8.2G        3.3G        3.0G        1.4M        2.0G        4.9G
      Swap:           209M          0B        209M
      Total:          8.4G        3.3G        3.2G
      
      Active iob-Instances:   30
      
               7809 M total memory
               3160 M used memory
               3223 M active memory
               1487 M inactive memory
               2818 M free memory
                188 M buffer memory
               1765 M swap cache
                199 M total swap
                  0 M used swap
                199 M free swap
      
      *** top - Table Of Processes  ***
      top - 16:00:49 up 2 days,  1:32,  2 users,  load average: 1.63, 1.11, 0.89
      Tasks: 228 total,   1 running, 227 sleeping,   0 stopped,   0 zombie
      %Cpu(s): 20.0 us,  0.0 sy,  0.0 ni, 80.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
      MiB Mem :   7809.0 total,   2817.2 free,   3161.2 used,   1954.0 buff/cache
      MiB Swap:    200.0 total,    200.0 free,      0.0 used.   4647.9 avail Mem
      
      *** FAILED SERVICES ***
      
        UNIT              LOAD   ACTIVE SUB    DESCRIPTION
      * logrotate.service loaded failed failed Rotate log files
      * motioneye.service loaded failed failed motionEye Server
      
      LOAD   = Reflects whether the unit definition was properly loaded.
      ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
      SUB    = The low-level unit activation state, values depend on unit type.
      2 loaded units listed.
      
      *** FILESYSTEM ***
      Filesystem     Type      Size  Used Avail Use% Mounted on
      udev           devtmpfs  3.6G     0  3.6G   0% /dev
      tmpfs          tmpfs     781M  1.3M  780M   1% /run
      /dev/sda2      ext4      117G  8.3G  103G   8% /
      tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
      tmpfs          tmpfs     5.0M   16K  5.0M   1% /run/lock
      /dev/sda1      vfat      510M   65M  446M  13% /boot/firmware
      tmpfs          tmpfs     781M     0  781M   0% /run/user/1000
      
      Messages concerning ext4 filesystem in dmesg:
      [Mon Jun 10 14:27:59 2024] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0  smsc95xx.macaddr=DC:A6:32:BE:C3:A9 vc_mem.mem_base=0x3eb00000 vc_mem.mem_size=0x3ff00000  console=tty1 root=PARTUUID=f89c2ddb-02 rootfstype=ext4 fsck.repair=yes rootwait
      [Mon Jun 10 14:28:02 2024] EXT4-fs (sda2): mounted filesystem 93c89e92-8f2e-4522-ad32-68faed883d2f ro with ordered data mode. Quota mode: none.
      [Mon Jun 10 14:28:04 2024] EXT4-fs (sda2): re-mounted 93c89e92-8f2e-4522-ad32-68faed883d2f r/w. Quota mode: none.
      
      Show mounted filesystems:
      TARGET                                                  SOURCE      FSTYPE      OPTIONS
      /                                                       /dev/sda2   ext4        rw,noatime
      |-/sys                                                  sysfs       sysfs       rw,nosuid,nodev,noexec,relatime
      | |-/sys/kernel/security                                securityfs  securityfs  rw,nosuid,nodev,noexec,relatime
      | |-/sys/fs/cgroup                                      cgroup2     cgroup2     rw,nosuid,nodev,noexec,relatime
      | |-/sys/fs/pstore                                      pstore      pstore      rw,nosuid,nodev,noexec,relatime
      | |-/sys/fs/bpf                                         bpf         bpf         rw,nosuid,nodev,noexec,relatime,mode=700
      | |-/sys/kernel/debug                                   debugfs     debugfs     rw,nosuid,nodev,noexec,relatime
      | |-/sys/kernel/tracing                                 tracefs     tracefs     rw,nosuid,nodev,noexec,relatime
      | |-/sys/kernel/config                                  configfs    configfs    rw,nosuid,nodev,noexec,relatime
      | `-/sys/fs/fuse/connections                            fusectl     fusectl     rw,nosuid,nodev,noexec,relatime
      |-/proc                                                 proc        proc        rw,relatime
      | `-/proc/sys/fs/binfmt_misc                            systemd-1   autofs      rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=5434
      |   `-/proc/sys/fs/binfmt_misc                          binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime
      |-/dev                                                  udev        devtmpfs    rw,nosuid,relatime,size=3727760k,nr_inodes=931940,mode=755
      | |-/dev/pts                                            devpts      devpts      rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
      | |-/dev/shm                                            tmpfs       tmpfs       rw,nosuid,nodev
      | `-/dev/mqueue                                         mqueue      mqueue      rw,nosuid,nodev,noexec,relatime
      |-/run                                                  tmpfs       tmpfs       rw,nosuid,nodev,noexec,relatime,size=799648k,mode=755
      | |-/run/lock                                           tmpfs       tmpfs       rw,nosuid,nodev,noexec,relatime,size=5120k
      | |-/run/credentials/systemd-sysctl.service             ramfs       ramfs       ro,nosuid,nodev,noexec,relatime,mode=700
      | |-/run/credentials/systemd-sysusers.service           ramfs       ramfs       ro,nosuid,nodev,noexec,relatime,mode=700
      | |-/run/credentials/systemd-tmpfiles-setup-dev.service ramfs       ramfs       ro,nosuid,nodev,noexec,relatime,mode=700
      | |-/run/rpc_pipefs                                     sunrpc      rpc_pipefs  rw,relatime
      | |-/run/credentials/systemd-tmpfiles-setup.service     ramfs       ramfs       ro,nosuid,nodev,noexec,relatime,mode=700
      | `-/run/user/1000                                      tmpfs       tmpfs       rw,nosuid,nodev,relatime,size=799644k,nr_inodes=199911,mode=700,uid=1000,gid=1000
      |-/boot/firmware                                        /dev/sda1   vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro
      `-/var/lib/lxcfs                                        lxcfs       fuse.lxcfs  rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other
      
      Files in neuralgic directories:
      
      /var:
      1.6G    /var/
      846M    /var/lib
      668M    /var/lib/piVCCU3
      606M    /var/lib/piVCCU3/rootfs
      287M    /var/cache
      
      Archived and active journals take up 207.6M in the file system.
      
      /opt/iobroker/backups:
      51M     /opt/iobroker/backups/
      
      /opt/iobroker/iobroker-data:
      992M    /opt/iobroker/iobroker-data/
      820M    /opt/iobroker/iobroker-data/files
      195M    /opt/iobroker/iobroker-data/files/vis-2
      186M    /opt/iobroker/iobroker-data/files/javascript.admin
      153M    /opt/iobroker/iobroker-data/files/javascript.admin/static
      
      The five largest files in iobroker-data are:
      35M     /opt/iobroker/iobroker-data/objects.jsonl
      29M     /opt/iobroker/iobroker-data/files/backitup.admin/static/js/main.ecef4f21.js.map
      24M     /opt/iobroker/iobroker-data/files/web.admin/static/js/main.4ff93037.js.map
      24M     /opt/iobroker/iobroker-data/files/vis-2/static/js/main.f305bc29.js.map
      24M     /opt/iobroker/iobroker-data/files/vis-2/static/js/main.8e80ccb0.js.map
      
      USB-Devices by-id:
      USB-Sticks -  Avoid direct links to /dev/tty* in your adapter setups, please always prefer the links 'by-id':
      
      /dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus_0001-if00-port0
      
      HINT:
      Your zigbee.0 COM-Port is NOT matching 'by-id'. Please check your setting:
      /dev/ttyUSB0
      
      
      
      *** NodeJS-Installation ***
      
      /usr/bin/nodejs         v20.14.0
      /usr/bin/node           v20.14.0
      /usr/bin/npm            10.7.0
      /usr/bin/npx            10.7.0
      /usr/bin/corepack       0.28.1
      
      
      nodejs:
        Installed: 20.14.0-1nodesource1
        Candidate: 20.14.0-1nodesource1
        Version table:
       *** 20.14.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
              100 /var/lib/dpkg/status
           20.13.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.13.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.12.2-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.12.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.12.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.11.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.11.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.10.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.9.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.8.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.8.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.7.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.6.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.6.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.5.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.5.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.4.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.3.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.3.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.2.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.1.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           20.0.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main arm64 Packages
           18.19.0+dfsg-6~deb12u1 500
              500 http://deb.debian.org/debian-security bookworm-security/main arm64 Packages
           18.13.0+dfsg1-1 500
              500 http://deb.debian.org/debian bookworm/main arm64 Packages
      
      Temp directories causing npm8 problem: 0
      No problems detected
      
      Errors in npm tree:
      
      *** ioBroker-Installation ***
      
      ioBroker Status
      iobroker is running on this host.
      
      
      Objects type: jsonl
      States  type: jsonl
      
      Core adapters versions
      js-controller:  5.0.19
      admin:          6.17.14
      javascript:     8.4.2
      
      nodejs modules from github:     2
      | +-- node-milight-promise@0.3.2 (git+ssh://git@github.com/Steiger04/node-milight-promise.git#f1089feac9b7990727adf2016891029436729d33)
      | +-- syno@3.0.0 (git+https://git@github.com/MeisterTR/syno.git#0104a973d33fe332aa6b1ab5be7fe8c57d3c68b0)
      
      Adapter State
      + system.adapter.admin.0                  : admin                 : haussteuerung                            -  enabled, port: 8081, bind: 0.0.0.0, run as: admin
      + system.adapter.admin.1                  : admin                 : haussteuerung                            -  enabled, port: 8999, bind: 0.0.0.0, run as: admin
      + system.adapter.alexa2.0                 : alexa2                : haussteuerung                            -  enabled
        system.adapter.alias-manager.0          : alias-manager         : haussteuerung                            - disabled
      + system.adapter.awtrix-light.0           : awtrix-light          : haussteuerung                            -  enabled
        system.adapter.awtrix-light.1           : awtrix-light          : haussteuerung                            - disabled
        system.adapter.backitup.0               : backitup              : haussteuerung                            - disabled
        system.adapter.daswetter.0              : daswetter             : haussteuerung                            -  enabled
      + system.adapter.denon.0                  : denon                 : haussteuerung                            -  enabled
        system.adapter.discovery.0              : discovery             : haussteuerung                            - disabled
      + system.adapter.echarts.0                : echarts               : haussteuerung                            -  enabled
        system.adapter.flot.0                   : flot                  : haussteuerung                            - disabled
        system.adapter.fullybrowser.0           : fullybrowser          : haussteuerung                            - disabled
        system.adapter.habpanel.0               : habpanel              : haussteuerung                            - disabled
        system.adapter.heos.0                   : heos                  : haussteuerung                            - disabled
      + system.adapter.hiob.0                   : hiob                  : haussteuerung                            -  enabled, port: 8090
      + system.adapter.history.0                : history               : haussteuerung                            -  enabled
      + system.adapter.hm-rega.0                : hm-rega               : haussteuerung                            -  enabled
      + system.adapter.hm-rpc.0                 : hm-rpc                : haussteuerung                            -  enabled, port: 0
        system.adapter.ical.0                   : ical                  : haussteuerung                            -  enabled
        system.adapter.icons-icons8.0           : icons-icons8          : haussteuerung                            - disabled
        system.adapter.icons-material-png.0     : icons-material-png    : haussteuerung                            - disabled
        system.adapter.icons-material-svg.0     : icons-material-svg    : haussteuerung                            - disabled
        system.adapter.info.0                   : info                  : haussteuerung                            - disabled
      + system.adapter.javascript.0             : javascript            : haussteuerung                            -  enabled
        system.adapter.lovelace.0               : lovelace              : haussteuerung                            - disabled, port: 8091, bind: 0.0.0.0, run as: admin
      + system.adapter.mielecloudservice.0      : mielecloudservice     : haussteuerung                            -  enabled
      + system.adapter.milight-smart-light.0    : milight-smart-light   : haussteuerung                            -  enabled
        system.adapter.milight.0                : milight               : haussteuerung                            - disabled, port: 5987
      + system.adapter.mqtt.0                   : mqtt                  : haussteuerung                            -  enabled, port: 1883, bind: 0.0.0.0
      + system.adapter.mqtt.1                   : mqtt                  : haussteuerung                            -  enabled, port: 1885, bind: 0.0.0.0
      + system.adapter.node-red.0               : node-red              : haussteuerung                            -  enabled, port: 1880, bind: 0.0.0.0
        system.adapter.ping.0                   : ping                  : haussteuerung                            - disabled
        system.adapter.proxy.0                  : proxy                 : haussteuerung                            -  enabled
      + system.adapter.reolink.0                : reolink               : haussteuerung                            -  enabled
      + system.adapter.rpi2.0                   : rpi2                  : haussteuerung                            -  enabled
      + system.adapter.shelly.0                 : shelly                : haussteuerung                            -  enabled, port: 1882, bind: 0.0.0.0
      + system.adapter.simple-api.0             : simple-api            : haussteuerung                            -  enabled, port: 9091, bind: 0.0.0.0, run as: admin
        system.adapter.slideshow.0              : slideshow             : haussteuerung                            - disabled
      + system.adapter.socketio.0               : socketio              : haussteuerung                            -  enabled, port: 8084, bind: 0.0.0.0, run as: admin
        system.adapter.sonoff.0                 : sonoff                : haussteuerung                            - disabled, port: 1884, bind: 0.0.0.0
      + system.adapter.sql.0                    : sql                   : haussteuerung                            -  enabled, port: 3306
        system.adapter.synology.0               : synology              : haussteuerung                            - disabled, port: 5000
      + system.adapter.tr-064.0                 : tr-064                : haussteuerung                            -  enabled
        system.adapter.vis-2-widgets-energy.0   : vis-2-widgets-energy  : haussteuerung                            - disabled
        system.adapter.vis-2-widgets-material.0 : vis-2-widgets-material: haussteuerung                            - disabled
      + system.adapter.vis-2.0                  : vis-2                 : haussteuerung                            -  enabled
        system.adapter.vis-bars.0               : vis-bars              : haussteuerung                            - disabled
        system.adapter.vis-canvas-gauges.0      : vis-canvas-gauges     : haussteuerung                            - disabled
        system.adapter.vis-colorpicker.0        : vis-colorpicker       : haussteuerung                            - disabled
        system.adapter.vis-fancyswitch.0        : vis-fancyswitch       : haussteuerung                            - disabled
        system.adapter.vis-history.0            : vis-history           : haussteuerung                            - disabled
        system.adapter.vis-hqwidgets.0          : vis-hqwidgets         : haussteuerung                            - disabled
        system.adapter.vis-jqui-mfd.0           : vis-jqui-mfd          : haussteuerung                            - disabled
        system.adapter.vis-justgage.0           : vis-justgage          : haussteuerung                            - disabled
        system.adapter.vis-material.0           : vis-material          : haussteuerung                            - disabled
        system.adapter.vis-materialdesign.0     : vis-materialdesign    : haussteuerung                            - disabled
        system.adapter.vis-rgraph.0             : vis-rgraph            : haussteuerung                            - disabled
        system.adapter.vis-timeandweather.0     : vis-timeandweather    : haussteuerung                            - disabled
        system.adapter.vis.0                    : vis                   : haussteuerung                            -  enabled
      + system.adapter.web.0                    : web                   : haussteuerung                            -  enabled, port: 8083, bind: 0.0.0.0, run as: admin
      + system.adapter.web.1                    : web                   : haussteuerung                            -  enabled, port: 8707, bind: 0.0.0.0, run as: admin
      + system.adapter.webui.0                  : webui                 : haussteuerung                            -  enabled
      + system.adapter.yeelight-2.0             : yeelight-2            : haussteuerung                            -  enabled
      + system.adapter.zigbee.0                 : zigbee                : haussteuerung                            -  enabled, port: /dev/ttyUSB0
      
      + instance is alive
      
      Enabled adapters with bindings
      + system.adapter.admin.0                  : admin                 : haussteuerung                            -  enabled, port: 8081, bind: 0.0.0.0, run as: admin
      + system.adapter.admin.1                  : admin                 : haussteuerung                            -  enabled, port: 8999, bind: 0.0.0.0, run as: admin
      + system.adapter.hiob.0                   : hiob                  : haussteuerung                            -  enabled, port: 8090
      + system.adapter.hm-rpc.0                 : hm-rpc                : haussteuerung                            -  enabled, port: 0
      + system.adapter.mqtt.0                   : mqtt                  : haussteuerung                            -  enabled, port: 1883, bind: 0.0.0.0
      + system.adapter.mqtt.1                   : mqtt                  : haussteuerung                            -  enabled, port: 1885, bind: 0.0.0.0
      + system.adapter.node-red.0               : node-red              : haussteuerung                            -  enabled, port: 1880, bind: 0.0.0.0
      + system.adapter.shelly.0                 : shelly                : haussteuerung                            -  enabled, port: 1882, bind: 0.0.0.0
      + system.adapter.simple-api.0             : simple-api            : haussteuerung                            -  enabled, port: 9091, bind: 0.0.0.0, run as: admin
      + system.adapter.socketio.0               : socketio              : haussteuerung                            -  enabled, port: 8084, bind: 0.0.0.0, run as: admin
      + system.adapter.sql.0                    : sql                   : haussteuerung                            -  enabled, port: 3306
      + system.adapter.web.0                    : web                   : haussteuerung                            -  enabled, port: 8083, bind: 0.0.0.0, run as: admin
      + system.adapter.web.1                    : web                   : haussteuerung                            -  enabled, port: 8707, bind: 0.0.0.0, run as: admin
      + system.adapter.zigbee.0                 : zigbee                : haussteuerung                            -  enabled, port: /dev/ttyUSB0
      
      ioBroker-Repositories
      Stable (default): http://download.iobroker.net/sources-dist.json
      Beta (latest) : http://download.iobroker.net/sources-dist-latest.json
      sources       : conf/sources-dist.json
      online        : https://raw.githubusercontent.com/ioBroker/ioBroker.repositories/master/sources-dist.json
      
      Active repo(s): Beta (latest)
      
      Installed ioBroker-Instances
      Used repository: Beta (latest)
      Adapter    "admin"        : 6.17.14  , installed 6.17.14
      Adapter    "alexa2"       : 3.26.5   , installed 3.26.5
      Adapter    "alias-manager": 1.2.6    , installed 1.2.6
      Adapter    "awtrix-light" : 1.2.1    , installed 1.2.1
      Adapter    "backitup"     : 3.0.3    , installed 3.0.3
      Adapter    "daswetter"    : 3.1.15   , installed 3.1.15
      Adapter    "denon"        : 1.15.5   , installed 1.15.5
      Adapter    "discovery"    : 4.5.0    , installed 4.5.0
      Adapter    "echarts"      : 1.7.2    , installed 1.7.2
      Adapter    "flot"         : 1.12.0   , installed 1.12.0
      Adapter    "fullybrowser" : 3.0.12   , installed 3.0.12
      Adapter    "habpanel"     : 0.5.0    , installed 0.5.0
      Adapter    "heos"         : 2.2.1    , installed 2.2.1
      Adapter    "hiob"         : 0.1.4    , installed 0.1.4
      Adapter    "history"      : 3.0.1    , installed 3.0.1
      Adapter    "hm-rega"      : 4.0.0    , installed 4.0.0
      Adapter    "hm-rpc"       : 1.17.0   , installed 1.17.0
      Adapter    "ical"         : 1.15.0   , installed 1.15.0
      Adapter    "icons-icons8" : 0.0.1    , installed 0.0.1
      Adapter    "icons-material-png": 0.1.0, installed 0.1.0
      Adapter    "icons-material-svg": 0.1.0, installed 0.1.0
      Adapter    "javascript"   : 8.5.2    , installed 8.4.2  [Updatable]
      Controller "js-controller": 6.0.2    , installed 5.0.19 [Updatable]
      Adapter    "lovelace"     : 4.1.10   , installed 4.1.10
      Adapter    "mielecloudservice": 6.5.6, installed 6.5.6
      Adapter    "milight"      : 0.4.0    , installed 0.4.0
      Adapter    "milight-smart-light": 1.2.2, installed 1.2.2
      Adapter    "mqtt"         : 5.2.0    , installed 5.2.0
      Adapter    "node-red"     : 5.2.1    , installed 5.2.1
      Adapter    "ping"         : 1.6.2    , installed 1.6.2
      Adapter    "proxy"        : 1.3.2    , installed 1.3.2
      Adapter    "reolink"      : 1.1.0    , installed 1.1.0
      Adapter    "rpi2"         : 1.3.2    , installed 1.3.2
      Adapter    "shelly"       : 7.0.0    , installed 7.0.0
      Adapter    "simple-api"   : 2.8.0    , installed 2.8.0
      Adapter    "slideshow"    : 0.1.4    , installed 0.1.4
      Adapter    "socketio"     : 6.7.0    , installed 6.7.0
      Adapter    "sonoff"       : 3.1.0    , installed 3.1.0
      Adapter    "sql"          : 2.2.0    , installed 2.2.0
      Adapter    "synology"     : 3.1.0    , installed 3.1.0
      Adapter    "tr-064"       : 4.3.0    , installed 4.3.0
      Adapter    "vis"          : 1.5.6    , installed 1.5.6
      Adapter    "vis-2"        : 2.9.64   , installed 2.9.64
      Adapter    "vis-2-widgets-energy": 0.3.11, installed 0.3.11
      Adapter    "vis-2-widgets-material": 1.3.33, installed 1.3.33
      Adapter    "vis-bars"     : 0.1.4    , installed 0.1.4
      Adapter    "vis-canvas-gauges": 1.0.1, installed 1.0.1
      Adapter    "vis-colorpicker": 2.0.3  , installed 2.0.3
      Adapter    "vis-fancyswitch": 1.1.0  , installed 1.1.0
      Adapter    "vis-history"  : 1.0.0    , installed 1.0.0
      Adapter    "vis-hqwidgets": 1.5.1    , installed 1.5.1
      Adapter    "vis-jqui-mfd" : 1.1.1    , installed 1.1.1
      Adapter    "vis-justgage" : 2.1.7    , installed 2.1.7
      Adapter    "vis-material" : 0.1.3    , installed 0.1.3
      Adapter    "vis-materialdesign": 0.5.9, installed 0.5.9
      Adapter    "vis-rgraph"   : 0.0.2    , installed 0.0.2
      Adapter    "vis-timeandweather": 1.2.2, installed 1.2.2
      Adapter    "web"          : 6.2.6    , installed 6.2.6
      Adapter    "webui"        : 1.11.3   , installed 1.11.3
      Adapter    "ws"           : 2.6.1    , installed 2.6.1
      Adapter    "yeelight-2"   : 1.4.0    , installed 1.4.0
      Adapter    "zigbee"       : 1.10.3   , installed 1.10.3
      
      Objects and States
      Please stand by - This may take a while
      Objects:        12264
      States:         9434
      
      *** OS-Repositories and Updates ***
      Hit:1 http://deb.debian.org/debian bookworm InRelease
      Hit:2 http://deb.debian.org/debian-security bookworm-security InRelease
      Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
      Hit:4 http://archive.raspberrypi.com/debian bookworm InRelease
      Hit:5 https://deb.nodesource.com/node_20.x nodistro InRelease
      Hit:6 https://apt.pivccu.de/piVCCU stable InRelease
      Reading package lists...
      Pending Updates: 2
      
      *** Listening Ports ***
      Active Internet connections (only servers)
      Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
      tcp        0      0 192.168.178.51:2001     0.0.0.0:*               LISTEN      1001       190332     18064/io.hm-rpc.0
      tcp        0      0 10.0.3.1:53             0.0.0.0:*               LISTEN      0          8216       1119/dnsmasq
      tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      1001       7285       1019/iobroker.js-co
      tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      1001       7320       1019/iobroker.js-co
      tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1000       1952130    159712/sshd: pi@pts
      tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          670        1028/sshd: /usr/sbi
      tcp        0      0 0.0.0.0:1880            0.0.0.0:*               LISTEN      1001       8798       2097/node-red
      tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      1001       7005       2354/io.mqtt.0
      tcp        0      0 0.0.0.0:1884            0.0.0.0:*               LISTEN      1001       7006       2354/io.mqtt.0
      tcp        0      0 0.0.0.0:1885            0.0.0.0:*               LISTEN      1001       7021       2467/io.mqtt.1
      tcp        0      0 0.0.0.0:1886            0.0.0.0:*               LISTEN      1001       7022       2467/io.mqtt.1
      tcp        0      0 127.0.0.1:8081          0.0.0.0:*               LISTEN      107        8249       1027/motion
      tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      107        8250       1027/motion
      tcp6       0      0 :::8090                 :::*                    LISTEN      1001       8729       2122/io.hiob.0
      tcp6       0      0 :::8082                 :::*                    LISTEN      1001       157325     15136/io.admin.0
      tcp6       0      0 :::8083                 :::*                    LISTEN      1001       160368     15451/io.web.0
      tcp6       0      0 :::8084                 :::*                    LISTEN      1001       8151       2736/io.socketio.0
      tcp6       0      0 :::8554                 :::*                    LISTEN      1000       1841403    82439/go2rtc_linux_
      tcp6       0      0 :::8555                 :::*                    LISTEN      1000       1841404    82439/go2rtc_linux_
      tcp6       0      0 :::80                   :::*                    LISTEN      1001       9293       2097/node-red
      tcp6       0      0 :::22                   :::*                    LISTEN      0          672        1028/sshd: /usr/sbi
      tcp6       0      0 :::8999                 :::*                    LISTEN      1001       991        1802/io.admin.1
      tcp6       0      0 ::1:6010                :::*                    LISTEN      1000       1952129    159712/sshd: pi@pts
      tcp6       0      0 :::9091                 :::*                    LISTEN      1001       9209       2713/io.simple-api.
      tcp6       0      0 :::8707                 :::*                    LISTEN      1001       11408      2811/io.web.1
      tcp6       0      0 :::1984                 :::*                    LISTEN      1000       1842294    82439/go2rtc_linux_
      udp        0      0 0.0.0.0:5353            0.0.0.0:*                           1000       1870733    82439/go2rtc_linux_
      udp        0      0 192.168.178.51:5353     0.0.0.0:*                           1001       9032       2559/io.tr-064.0
      udp        0      0 0.0.0.0:5353            0.0.0.0:*                           104        2878       584/avahi-daemon: r
      udp        0      0 0.0.0.0:38220           0.0.0.0:*                           1000       1872969    82439/go2rtc_linux_
      udp        0      0 0.0.0.0:5683            0.0.0.0:*                           1001       7048       2537/io.shelly.0
      udp        0      0 0.0.0.0:39714           0.0.0.0:*                           104        2880       584/avahi-daemon: r
      udp        0      0 192.168.178.51:48946    0.0.0.0:*                           1000       1871614    82439/go2rtc_linux_
      udp        0      0 10.0.3.1:53             0.0.0.0:*                           0          8215       1119/dnsmasq
      udp        0      0 0.0.0.0:67              0.0.0.0:*                           0          8212       1119/dnsmasq
      udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          6072       952/dhclient
      udp        0      0 0.0.0.0:32935           0.0.0.0:*                           1001       9699       2689/io.milight-sma
      udp6       0      0 :::37999                :::*                                104        2881       584/avahi-daemon: r
      udp6       0      0 :::5353                 :::*                                104        2879       584/avahi-daemon: r
      
      *** Log File - Last 25 Lines ***
      
      2024-06-12 15:58:31.580  - info: host.haussteuerung iobroker upload [19] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigNotifications.json5 jsonConfigNotifications.json5 application/json5
      2024-06-12 15:58:31.588  - info: host.haussteuerung iobroker upload [18] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigOnedrive.json5 jsonConfigOnedrive.json5 application/json5
      2024-06-12 15:58:31.596  - info: host.haussteuerung iobroker upload [17] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigPgsql.json5 jsonConfigPgsql.json5 application/json5
      2024-06-12 15:58:31.607  - info: host.haussteuerung iobroker upload [16] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigRedis.json5 jsonConfigRedis.json5 application/json5
      2024-06-12 15:58:31.615  - info: host.haussteuerung iobroker upload [15] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigRestore.json5 jsonConfigRestore.json5 application/json5
      2024-06-12 15:58:31.622  - info: host.haussteuerung iobroker upload [14] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigSqlite.json5 jsonConfigSqlite.json5 application/json5
      2024-06-12 15:58:31.631  - info: host.haussteuerung iobroker upload [13] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigWebdav.json5 jsonConfigWebdav.json5 application/json5
      2024-06-12 15:58:31.639  - info: host.haussteuerung iobroker upload [12] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/jsonConfigZigbee2mqtt.json5 jsonConfigZigbee2mqtt.json5 application/json5
      2024-06-12 15:58:31.647  - info: host.haussteuerung iobroker upload [11] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/manifest.json manifest.json application/json
      2024-06-12 15:58:31.654  - info: host.haussteuerung iobroker upload [10] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/static/css/main.bd1167d4.css static/css/main.bd1167d4.css text/css
      2024-06-12 15:58:31.660  - info: host.haussteuerung iobroker upload [9] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/static/css/main.bd1167d4.css.map static/css/main.bd1167d4.css.map application/json
      2024-06-12 15:58:31.667  - info: host.haussteuerung iobroker upload [8] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/static/js/main.ecef4f21.js static/js/main.ecef4f21.js application/javascript
      2024-06-12 15:58:32.096  - info: host.haussteuerung iobroker upload [7] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/static/js/main.ecef4f21.js.LICENSE.txt static/js/main.ecef4f21.js.LICENSE.txt text/plain
      2024-06-12 15:58:32.104  - info: host.haussteuerung iobroker upload [6] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/static/js/main.ecef4f21.js.map static/js/main.ecef4f21.js.map application/json
      2024-06-12 15:58:39.987  - info: host.haussteuerung iobroker upload [5] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/static/media/history.d21dcfa508bd8a624c85.png static/media/history.d21dcfa508bd8a624c85.png image/png
      2024-06-12 15:58:40.166  - info: host.haussteuerung iobroker upload [4] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/style.css style.css text/css
      2024-06-12 15:58:40.197  - info: host.haussteuerung iobroker upload [3] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/tab_m.css tab_m.css text/css
      2024-06-12 15:58:40.218  - info: host.haussteuerung iobroker upload [2] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/tab_m.html tab_m.html text/html
      2024-06-12 15:58:40.236  - info: host.haussteuerung iobroker upload [1] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/tab_m.js tab_m.js application/javascript
      2024-06-12 15:58:40.275  - info: host.haussteuerung iobroker upload [0] backitup.admin /opt/iobroker/node_modules/iobroker.backitup/admin/words.js words.js application/javascript
      2024-06-12 15:58:41.340  - info: host.haussteuerung iobroker exit 0
      2024-06-12 15:59:22.328  - warn: node-red.0 (2097) Read-only state "awtrix-light.1.apps.sonnig.visible" has been written without ack-flag with value "true"
      2024-06-12 15:59:22.373  - warn: node-red.0 (2097) Read-only state "awtrix-light.1.apps.taghell.visible" has been written without ack-flag with value "false"
      2024-06-12 15:59:22.373  - warn: node-red.0 (2097) Read-only state "awtrix-light.1.apps.wolkig.visible" has been written without ack-flag with value "false"
      2024-06-12 15:59:22.373  - warn: node-red.0 (2097) Read-only state "awtrix-light.1.apps.nacht.visible" has been written without ack-flag with value "false"
      
      

      ============ Mark until here for C&P =============

      iob diag has finished.

      posted in ioBroker Allgemein
      HomeZecke
      HomeZecke
    • [gelöst]Admin port blockiert

      Hallo,

      da ich meinen Raspi4 auf bookworm updatete, machte ich gleich mal ein frisches IObroker mit drauf.
      Bis hier alles gut. Dann noch Motioneye dazu, ging auch noch gut. Nach einem Reboot, waren dann aber der Admin.0 (port 8081) und web.0 (port 8082) nicht mehr erreichbar. Motioneye geht gar nicht mehr...
      Ich habe jetzt erstmal einen 2ten Admin mit anderen Port hinzugefügt. Geht.

      Wie aber kann ich den Admin.0 wieder unter 8081 und web.0 unter 8082 erreichbar machen?

      Grüße...

      posted in ioBroker Allgemein
      HomeZecke
      HomeZecke
    • RE: MieleCloudService Adapter

      @grizzelbee

      Ja, geht bei mir auch alles wieder! :🙂

      posted in Tester
      HomeZecke
      HomeZecke
    • RE: MieleCloudService Adapter

      @grizzelbee

      Danke...👍

      posted in Tester
      HomeZecke
      HomeZecke
    • RE: MieleCloudService Adapter

      @grizzelbee

      Hallo!

      Bei "API-Antwortsprache" kann ich einstellen was ich will, es ist immer auf Englisch..

      Grüße...

      posted in Tester
      HomeZecke
      HomeZecke
    • RE: MieleCloudService Adapter

      Hallo,

      heute noch einmal probiert und da hat es geklappt. Habe jetzt die 6.4.0 drauf. Komisch, ich konnte heute bei keinem meiner Adapter mehr eine Instanz erstellen. Kam immer die Meldung ich solle erst node installieren. Nach einem Browserreload ging es dann. Auch mit MieleCloudService.😊

      Grüße..

      posted in Tester
      HomeZecke
      HomeZecke
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo