Ankündigung

Einklappen
Keine Ankündigung bisher.

Dimplex Wärmepumpe auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Also nochmal ein kleines Uodate meinerseits...
    Mittlerweile hab ich den Baustein zum Laufen gebracht..
    Derzeit wird nur die Aussentemperatur, meine 2te Heizquelle (Regenerativer Fühler im Pufferspeicher) und die Sammelstörung abgefragt..

    Das alles wird sicherlich irgendwann mal erweitert, momentan brauch ich aber nicht mehr..

    Sollt jemand Intresse dran haben lad ich das ganze hoch... wird aber alles seine Zeit brauchen...
    ​​

    Kommentar


      #32
      Hallo Andy,

      das wäre Super wenn du mal den Code einstellen könntest!

      Muss ihn für meine Weißhaupt wahrscheinlich von den Registern her so oder so anpassen!

      Gruß Timo

      Kommentar


        #33
        Sooo hier mal der Code:
        PHP-Code:
        ###[DEF]###
         [name =Dimplex NWPM Abfrage ]

         [e#1 =Trigger !=0]
         [e#2 =IP]

         [a#1 =A-temp.]
         [a#2 =Reg-temp.]
         [a#3 =Status]
         [a#4 =Störung]



        ###[/DEF]###



        ###[HELP]###
        Auslesen einer Dimplex Waermepumpe mittels einer NWPM Karte

        E1: Trigger
        E2: IP Adresse NWPM

        A1: AUSSENTEMPERATUR
        A2: Fühler Regenerativ
        A3: Statusmeldung siehe Dimplex NWPM Anleitung
        A4: Störmeldung siehe Dimplex NWPM Anleitung


        ###[/HELP]###

        ###[LBS]###
        <?
         function LB_LBSID($id) {

         if ($E=getLogicEingangDataAll($id)) {

         if (getLogicElementStatus($id)==0) {
         if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
         setLogicElementStatus($id,1);

         callLogicFunctionExec(LBSID,$id);
         }
         } else {
         //###
         }

         }

         }
         ?>
         ###[/LBS]###

        ###[EXEC]###
        <?
         require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
         set_time_limit(15);

         sql_connect();

         //----------------------------------------------------------------------------------------------------------------------------------------



        if ($E=getLogicEingangDataAll($id)) {
         $ip = $E[2]['value'];
         }


        $url1 = "http://".$ip."/usr-cgi/xml.cgi?|A|1|1";
        $url2 = "http://".$ip."/usr-cgi/xml.cgi?|A|10|10";
        $url3 = "http://".$ip."/usr-cgi/xml.cgi?|A|43|43";
        $url4 = "http://".$ip."/usr-cgi/xml.cgi?|A|42|42";



        $ausgabe1 = file_get_contents("$url1");


        //Aussentemperatur
        $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
        preg_match($regexp,$ausgabe1,$data1); 
        setLogicLinkAusgang($id,1,$data1[1]);


        //

        $ausgabe2 = file_get_contents("$url2");

        //Fühler Regenerativ
        $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
        preg_match($regexp,$ausgabe2,$data2); 
        setLogicLinkAusgang($id,2,$data2[1]);


        //

        $ausgabe3 = file_get_contents("$url3");

        //Statusmeldung
        $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
        preg_match($regexp,$ausgabe3,$data3); 
        setLogicLinkAusgang($id,3,$data3[1]);


        //

        $ausgabe4 = file_get_contents("$url4");

        //Störmeldung
        $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
        preg_match($regexp,$ausgabe4,$data4); 
        setLogicLinkAusgang($id,4,$data4[1]);



        setLogicElementStatus($id,0);




         //----------------------------------------------------------------------------------------------------------------------------------------

         sql_disconnect();
         ?>
         ###[/EXEC]###

        Grundsätzlich musst du erstmal herausfinden welche Software dein Gerät installiert hat (Bei mir handelt es sich um die Version J)
        Danach musst du dann deine Abfrage richten... Wie ich das bei dir aber auf den ersten blick sehe sollt der Baustein genau so funktionieren denn der Index 1 scheint bei dir auch die Aussentemperatur zu sein.

        Du kannst das ganze natürlich beliebig erweitern..

        Wenn ich mal wieder mehr Zeit habe lade ich den ganzen Baustein hier ins Forum hoch wenn das denn erlaubt bzw gewünscht ist.

        Um die Werte für Status und Störung genau zu erhalten muss du die Werte noch Vergleichen da du sonst kein ergebniss erhältst.

        Das ganze sieht dann bei mir so aus:

        Wärmepumpe.jpg

        Kommentar


          #34
          Danke für das einstellen hier! Werde berichten wie weit ich komme!

          Kommentar


            #35
            So.... Wollte nur mal eine kurze Rückmeldung geben das der Baustein mittlerweile hochgeladen wurde. ID:19000850 v1.0

            Er wurde auch noch einmal ein bisschen "modifiziert"
            Der Ausgang Warmwassertemperatur und Systemsperren wurden Hinzugefügt

            Kommentar


              #36
              Hallo liebe Forum Gemeinde,

              erst einmal ein gutes neues Jahr 2017.

              Ich habe eine Dimplex WP mit KNX Modul.
              -Die Phys. Adresse wurde vergeben
              -Die xml datei aufgespielt
              -in den Dummy gruppenadressen vergeben

              Auf dem Busmonitor werden alle gewünschten daten ausgegeben.

              Nun zu meiner Frage, ich habe eine Sotfware vom Touchpanel wo die Gruppen Adressen nach dem
              sie aus der ETS4 via "OPC exportieren" gespeichert wurden, verarbeitet werden können.

              Nun wollte ich die Gruppenadressen aus dem Dummy exportieren, das geht aber leider nicht.

              Da es nur ein Dummy ist werden ja keine Gruppenadressen "programiert" ,richtig?

              Kann mir hier jemand weiter helfen, wie ich die Gruppenadressen exportiert bekomme?

              Danke im vorraus

              Kommentar


                #37
                Wenn die GA auch in dem Dummy vorhanden sind, werden sie mit exportiert.

                Kommentar


                  #38
                  Alle GA, die einem Gerät zugeordnet sind, werden exportiert, egal ob es ein echtes Gerät oder eine Dummy Applikation ist.
                  ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                  Kommentar


                    #39
                    Vielen dank für diese Information, dann werd ich gleich mal schauen woran es liegt

                    Kommentar


                      #40
                      Hallo zusammen,

                      Aktueller Stand ist das die Dimplex WP auf dem Gruppenmonitor die werte anzeigt (vorlauf rücklauf aussentemp.....)

                      In den Dummy hab ich die Adresse bei 2 Byte (38-46 im Dummy) eingetragen und sie exportiert und in der Panel Software eingefügt.

                      Das hat alles funktioniert.

                      Jetzt zeigt es mir aber auf dem Panel nix an wobei es auf dem Busmonitor werte spuckt.

                      Kommentar


                        #41
                        hier ein paar Bilder, findet ihr einen Fehler?
                        Angehängte Dateien

                        Kommentar


                          #42
                          Was hat das mit eigentlich Edomi zu tun?

                          Kommentar


                            #43
                            was für ein Panel hast du denn?
                            ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                            Kommentar


                              #44
                              Ist ein iddero touch Panel

                              Kommentar


                                #45
                                So wollte mal meinen Stand der Einbindung via CpoWeb mitteilen

                                Habe einige Werte der Wärmepumpe eingebunden:


                                A1: AUSSENTEMPERATUR |A|1|
                                A2: Statusmeldung siehe Dimplex NWPM Anleitung |A|43|
                                A3: Störmeldung siehe Dimplex NWPM Anleitung |A|42|
                                A4: Vorlauftemperatur |A|5|
                                A5: Rücklauftemperatur |A|2|
                                A6: Eintritt Sole Temperatur |A|6|
                                A7: Austritt Sole Temperatur |A|7|
                                A8: Warmwasser Temperatur |A|3|
                                ((((A9: Hochdruck |A|1|? ))))
                                A10: Niederdruck |A|101|

                                Code:
                                ###[LBS]###
                                <?
                                 function LB_LBSID($id) {
                                
                                 if ($E=getLogicEingangDataAll($id)) {
                                
                                 if (getLogicElementStatus($id)==0) {
                                 if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
                                 setLogicElementStatus($id,1);
                                
                                 callLogicFunctionExec(LBSID,$id);
                                 }
                                 } else {
                                 //###
                                 }
                                
                                 }
                                
                                 }
                                 ?>
                                ###[/LBS]###
                                
                                ###[EXEC]###
                                <?
                                 require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
                                 set_time_limit(15);
                                
                                 sql_connect();
                                
                                 //----------------------------------------------------------------------------------------------------------------------------------------
                                
                                
                                
                                if ($E=getLogicEingangDataAll($id)) {
                                 $ip = $E[2]['value'];
                                 }
                                
                                
                                $url1 = "http://BN:PW@".$ip."/config/xml.cgi?|A|1|1";
                                $url2 = "http://BN:PW@".$ip."/config/xml.cgi?|A|43|43";
                                $url3 = "http://BN:PW@".$ip."/config/xml.cgi?|A|42|42";
                                $url4 = "http://BN:PW@".$ip."/config/xml.cgi?|A|5|5";
                                $url5 = "http://BN:PW@".$ip."/config/xml.cgi?|A|2|2";
                                $url6 = "http://BN:PW@".$ip."/config/xml.cgi?|A|6|6";
                                $url7 = "http://BN:PW@".$ip."/config/xml.cgi?|A|7|7";
                                $url8 = "http://BN:PW@".$ip."/config/xml.cgi?|A|3|3";
                                //$url9 = "http://BN:PW@".$ip."/config/xml.cgi?|A|1|1";
                                $url10 = "http://BN:PW@".$ip."/config/xml.cgi?|A|101|101";
                                
                                $ausgabe1 = file_get_contents("$url1");
                                
                                //Aussentemperatur
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe1,$data1);
                                setLogicLinkAusgang($id,1,$data1[1]);
                                
                                //
                                
                                $ausgabe2 = file_get_contents("$url2");
                                
                                //Statusmeldung
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe2,$data2);
                                setLogicLinkAusgang($id,2,$data2[1]);
                                
                                //
                                
                                $ausgabe3 = file_get_contents("$url3");
                                
                                //Störmeldung
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe3,$data3);
                                setLogicLinkAusgang($id,3,$data3[1]);
                                
                                //
                                
                                $ausgabe4 = file_get_contents("$url4");
                                
                                //Vorlauftemperatur    
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe4,$data4);
                                setLogicLinkAusgang($id,4,$data4[1]);
                                
                                //
                                
                                $ausgabe5 = file_get_contents("$url5");
                                
                                //Rücklauftemperatur    
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe5,$data5);
                                setLogicLinkAusgang($id,5,$data5[1]);
                                
                                //
                                
                                $ausgabe6 = file_get_contents("$url6");
                                
                                //Eintritt Sole Temperatur
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe6,$data6);
                                setLogicLinkAusgang($id,6,$data6[1]);
                                
                                //
                                
                                $ausgabe7 = file_get_contents("$url7");
                                
                                //Austritt Sole Temperatur
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe7,$data7);
                                setLogicLinkAusgang($id,7,$data7[1]);
                                
                                //
                                
                                $ausgabe8 = file_get_contents("$url8");
                                
                                //Warmwasser Temperatur
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe8,$data8);
                                setLogicLinkAusgang($id,8,$data8[1]);
                                
                                
                                //$ausgabe9 = file_get_contents("$url9");
                                
                                //Hochdruck
                                //$regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                //preg_match($regexp,$ausgabe9,$data9);
                                //setLogicLinkAusgang($id,9,$data9[1]);
                                
                                
                                $ausgabe10 = file_get_contents("$url10");
                                
                                //Niederdruck
                                $regexp="(.*?<VALUE>(.*?)</VALUE>.*)";
                                preg_match($regexp,$ausgabe10,$data10);
                                setLogicLinkAusgang($id,10,$data10[1]);
                                
                                setLogicElementStatus($id,0);
                                
                                 //----------------------------------------------------------------------------------------------------------------------------------------
                                
                                 sql_disconnect();
                                 ?>
                                 ###[/EXEC]###
                                Das ganze funktioniert soweit auch, habe nur festgestellt das es nicht optimale ist, da alle werte einzeln nacheinander abgefragt werden, und somit es etwas Träge wird.
                                Wie man die Werte zusammen abfragt ist mir bekannt, nur an der Weiterverarbeitung übersteigt mein (past&copy) können.


                                Beispiel Abfrage zweier werte:
                                Code:
                                $url = "http://BN:PW@".$ip."/config/xml.cgi?|A|1|1|A|2|2";
                                Antwort der der CpoWeb wäre:

                                Code:
                                //<PCOWEB>
                                //<PCO>
                                //<ANALOG>
                                //<VARIABLE>
                                //<INDEX>1</INDEX>
                                //    <VALUE>0.2</VALUE>
                                //</VARIABLE>
                                //</ANALOG>
                                //<ANALOG>
                                //<VARIABLE>
                                //<INDEX>2</INDEX>
                                //    <VALUE>27.7</VALUE>
                                //</VARIABLE>
                                //</ANALOG>
                                //</PCO>
                                //</PCOWEB>
                                vielleicht ist es ja möglich das mir jemand an dem oben genannten Beispiel konkret auf zeigt wie ich die einzelnen werte den Ausgängen zuordne.

                                Gruß Timo
                                Zuletzt geändert von Inventor; 16.01.2017, 15:15.

                                Kommentar

                                Lädt...
                                X