Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19001680 / DAIKIN-Control

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

    #31
    Zitat von vento66 Beitrag anzeigen
    Und genau das sollst Du nicht tun,
    Nur um das klar zustellen:

    Da keine weiteren Dateien vom Baustein benötigt werden, wurden auch keine weiteren Dateien hochgeladen.
    Eingegeben wurde (bzw. wird) nur der Quelltext im Feld "Modul" in der EDOMI Baustein E-Verwaltung.


    Zitat von coliflower Beitrag anzeigen
    Auf jeden Fall habe ich eine v1.2 die lt. Aussage eine v1.1 ist
    Der in #27 gezeigte Quellcode kann die in #18 angeführten Log-Einträge nicht verursacht haben:
    1. Der Fehler mit dem Log-Namen ist behoben: Log-Name: "LBS19001680 - DAIKIN-Control"
    2. in V1.2 wird aus der Antwort von get_control_info der Eintrag ['ret'] entfernt (Z.132 ) - und kann somit beim Senden nicht mehr enthalten sein (...set_control_info?ret=OK... )
    Grüße
    Christian
    __________________

    Kommentar


      #32
      Ja, ich habs mir schon angeschaut Bei Dir passt alles, der LBS von coliflower ist auch die V1.2. Zumidest im Diff waren keine Unterschiede zu deinen Rohdaten im Portal erkennbar.

      Kommentar


        #33
        Scheint nun zu funktionieren, keine "negativen" Einträge mehr :-)
        Code:
         [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
         	 		[TR]
         			[TD]2018-08-31 20:46:04[/TD]
         			[TD]159887[/TD]
         			[TD]9509[/TD]
         			[TD]0[/TD]
         			[TD]HTTP GET: http://10.0.30.2/aircon/get_sensor_info[/TD]
         		[/TR]
         		[TR]
         			[TD]2018-08-31 20:46:04[/TD]
         			[TD]160829[/TD]
         			[TD]9509[/TD]
         			[TD]0[/TD]
         			[TD]Request init OK, requesting...[/TD]
         		[/TR]
         		[TR]
         			[TD]2018-08-31 20:46:04[/TD]
         			[TD]266823[/TD]
         			[TD]9509[/TD]
         			[TD]0[/TD]
         			[TD]returned content: ret=OK,htemp=28.0,hhum=45,otemp=21.0,err=0,cmpfreq=0[/TD]
         		[/TR]
         		[TR]
         			[TD]2018-08-31 20:46:04[/TD]
         			[TD]267369[/TD]
         			[TD]9509[/TD]
         			[TD]0[/TD]
         			[TD]data transfer: OK[/TD]
         		[/TR]
         	 [/TABLE]
        Fragen:

        Das ist der letzte Eintrag im Logfile ... Werden die Werte ins Log minütlich bei eingeschalteter oder auch bei abgeschalteter A/C geschrieben wenn die Konstante auf TRUE steht ... oder wie ist die Logik dahinter (Trigger am E1 ist das System KO 21 / stündlich) ... ?

        Der Wert "hhum=45" ist das die Luftfeuchtigkeit (relativ/absolut) ? Wenn ja, könnte man diesen auf einen Ausgang legen ?

        DANKE
        Danke und LG, Dariusz
        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

        Kommentar


          #34
          ... wenn LOG auf true, dann werden jedesmal - bei Trigger, oder Paramter-Änderung - die Einträge erzeugt

          Was hast du für Innengeräte ?
          Würde dann ev. auch Sinn machen, shum per Eingang zu setzen...

          - gerne leg ich dir das auf einen Ausgang
          bei mir kommt da aber leider nix (bzw. "--") ,weshalb ich das auch nicht testen kann.
          Ich nehme mal an das ist relativ...
          Grüße
          Christian
          __________________

          Kommentar


            #35
            Zitat von trax Beitrag anzeigen
            Was hast du für Innengeräte ?
            Zitat von coliflower Beitrag anzeigen
            Innengerät: STYLISH FTXA50AW

            Zitat von trax Beitrag anzeigen
            Würde dann ev. auch Sinn machen, shum per Eingang zu setzen...
            Welche Eingänge könnte DAIKIN noch verarbeiten ?
            Wäre da Raumtemperatur dabei ...?

            Zitat von trax Beitrag anzeigen
            - gerne leg ich dir das auf einen Ausgang
            DANKE
            Danke und LG, Dariusz
            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

            Kommentar


              #36
              Zitat von coliflower Beitrag anzeigen
              Wäre da Raumtemperatur dabei ...?
              A6: Raumtemperatur °C
              Das ist die aktuelle Raumtemperatur


              Ansonsten: könnte dein WLAN Passwort ausgeben
              Grüße
              Christian
              __________________

              Kommentar


                #37
                Zitat von trax Beitrag anzeigen
                A6: Raumtemperatur °C
                Das ist die aktuelle Raumtemperatur
                Ich hätte da eher an den EINGANG für einen externen Temperaturfühler zur genaueren Steuerung gedacht ;-)

                Zitat von trax Beitrag anzeigen
                Ansonsten: könnte dein WLAN Passwort ausgebe
                Besser nicht ;-)

                Zitat von trax Beitrag anzeigen
                ... wenn LOG auf true, dann werden jedesmal - bei Trigger, oder Paramter-Änderung - die Einträge erzeugt
                OK ... Ich habe derzeit Einträge im Minutentakt:
                Code:
                 [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
                 	 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]547569[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_control_info[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]549233[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]Request init OK, requesting...[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]654529[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]returned content: ret=OK,pow=0,mode=3,adv=,stemp=25.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=25.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=3,b_stemp=25.0,b_shum=0,alert=255,f_rate=A,f_dir=0,b_f_rate=A,b_f_dir=0,dfr1=A,dfr2=5,dfr3=A,dfr4=5,dfr5=5,dfr6=5,dfr7=A,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0,dmnd_run=0,en_demand=0[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]655126[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]data transfer: OK[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]663393[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]Outputs set[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]663695[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_sensor_info[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]664586[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]Request init OK, requesting...[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]769259[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]returned content: ret=OK,htemp=27.0,hhum=50,otemp=17.0,err=0,cmpfreq=0[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:54:03[/TD]
                 			[TD]769685[/TD]
                 			[TD]13119[/TD]
                 			[TD]0[/TD]
                 			[TD]data transfer: OK[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]467221[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_control_info[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]469064[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]Request init OK, requesting...[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]575711[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]returned content: ret=OK,pow=0,mode=3,adv=,stemp=25.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=25.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=3,b_stemp=25.0,b_shum=0,alert=255,f_rate=A,f_dir=0,b_f_rate=A,b_f_dir=0,dfr1=A,dfr2=5,dfr3=A,dfr4=5,dfr5=5,dfr6=5,dfr7=A,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0,dmnd_run=0,en_demand=0[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]576316[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]data transfer: OK[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]584346[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]Outputs set[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]584585[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_sensor_info[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]585328[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]Request init OK, requesting...[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]698216[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]returned content: ret=OK,htemp=27.0,hhum=50,otemp=17.0,err=0,cmpfreq=0[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:55:03[/TD]
                 			[TD]698688[/TD]
                 			[TD]14343[/TD]
                 			[TD]0[/TD]
                 			[TD]data transfer: OK[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]435434[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_control_info[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]437217[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]Request init OK, requesting...[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]943417[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]returned content: ret=OK,pow=0,mode=3,adv=,stemp=25.0,shum=0,dt1=25.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=25.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=3,b_stemp=25.0,b_shum=0,alert=255,f_rate=A,f_dir=0,b_f_rate=A,b_f_dir=0,dfr1=A,dfr2=5,dfr3=A,dfr4=5,dfr5=5,dfr6=5,dfr7=A,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0,dmnd_run=0,en_demand=0[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]944093[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]data transfer: OK[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]952127[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]Outputs set[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]952383[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_sensor_info[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:03[/TD]
                 			[TD]953234[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]Request init OK, requesting...[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:04[/TD]
                 			[TD]058381[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]returned content: ret=OK,htemp=27.0,hhum=50,otemp=17.0,err=0,cmpfreq=0[/TD]
                 		[/TR]
                 		[TR]
                 			[TD]2018-09-01 17:56:04[/TD]
                 			[TD]058890[/TD]
                 			[TD]15566[/TD]
                 			[TD]0[/TD]
                 			[TD]data transfer: OK[/TD]
                 		[/TR]
                 	 [/TABLE]
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  #38
                  Zitat von coliflower Beitrag anzeigen
                  Ich hätte da eher an den EINGANG für einen externen Temperaturfühler zur genaueren Steuerung gedacht
                  Der LBS gibt ja nur Daten an die DAIKIN-Geräte weiter (so wie die APP auch) ... heißt: das. regelt und steuert nicht
                  Die Raumtemperatur damit "exakt" ( - wozu auch immer das gut sein soll ... ) zu regeln geht eher nicht. Die Regelung deren Einstellung und Hysterese ist im Gerät fix hinterlegt. Ein ständiges "herumgedrehe" an der Soll-Temperatur führt bestimmt auch nicht zum gewünschten Ergebnis - und wohl noch eher zu ineffektivem Betrieb.

                  Zitat von coliflower Beitrag anzeigen
                  OK ... Ich habe derzeit Einträge im Minutentakt:
                  Der LBS wird (wie alle anderen ja auch) nur ausgelöst wenn an einem Eingang ein Telegramm eintrifft.
                  Ist es nur der Trigger Eingang werden die Daten nur abgefragt, bei den anderen EIngängen wird zuerst der Wert gesendet und danach die aktuellen Daten abgefragt.
                  Hast du im Minuten-Takt Einträge, muss auch irgendetwas minütlich "triggern" ...

                  Bei mir is es KO 23 - und das wird auch brav alle 15Minuten getriggert ... jedoch hängt da noch ein Binärauslöser davor ...
                  Zuletzt geändert von trax; 01.09.2018, 20:18.
                  Grüße
                  Christian
                  __________________

                  Kommentar


                    #39
                    Zitat von trax Beitrag anzeigen
                    Die Raumtemperatur damit "exakt" ( - wozu auch immer das gut sein soll ... ) zu regeln geht eher nicht. Die Regelung deren Einstellung und Hysterese ist im Gerät fix hinterlegt. Ein ständiges "herumgedrehe" an der Soll-Temperatur führt bestimmt auch nicht zum gewünschten Ergebnis - und wohl noch eher zu ineffektivem Betrieb
                    Na ja, man hat doch auch keinen Temperaturfühler auf der Heizung liegen, sondern bedient sich der Fühler im Raum ... das habe ich mit "exakt" gemeint - die Raumtemperatur der Daikin über einen im Raum befindlichen Fühler zuzuführen, wie der Heizung ja auch.

                    Wie soll ich ein "ständiges herumgedrehe" den am Temperaturfühler im Raum bewerkstelligen - ein Temperaturfühler ist doch die Ist- und nicht die Soll-Temperatur ?

                    Was ist damit gemeint ?
                    Zitat von trax
                    Würde dann ev. auch Sinn machen, shum per Eingang zu setzen...
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      #40
                      ... ok da haben wir uns missverstanden:
                      Ich dachte der externe Sensor soll zur Regelung der Raumtemperatur herangezogen werden. Da die Klimaanlage das (ausschließlich) über den internen Sensor regelt, wäre ein entsprechendes "herumgedrehe" an der Soll-Temperatur notwendig um die interne Regelung quasi auszutricksen ...
                      Jedenfalls ist es nicht möglich (weil auch wenig sinnvoll) die IST-Temperatur per HTTP-GET zu setzen.
                      Ob die Geräte selbst - also hardwaretechnisch - externe Sensoren unterstützen weiß ich leider nicht. Da gebe ich dir natürlich völlig recht - das wäre durchaus sinnvoll.

                      shum ... is das Gegenstück zu hhum / wobei letzteres der Sensorwert und erstes der Soll-Wert ist
                      das heißt: damit ließe sich die Ziel-Luftfeuchte einstellen / soweit diese durch das Gerät verändert werden kann!
                      Soweit mir bekannt, können das aber nur die Ururu-Sarara-Modelle (FTXZ). Witziger Weise erwarten aber alle Modelle das shum Objekt - also wird das ohnehin übertragen. Derzeit einfach aus den "modus-daten" dh(1-5) [bei mir meistens "AUTO"]
                      -Könnte man also auf einen zusätzlichen Eingang legen - was auch immer das dann bedeutet.

                      Kannst du in der APP die Luftfeuchte einstellen ?


                      Zitat von coliflower Beitrag anzeigen
                      Welche Eingänge könnte DAIKIN noch verarbeiten ?
                      Der Link in der LBS Beschreibung führt zur API, bzw. nachstehender zu (angeblich) allen Endpoints.
                      https://github.com/ael-code/daikin-c...fied-endpoints


                      Was ich jedenfalls noch irgendwie umsetzen möchte ist die Verbrauchsdaten-Abfrage. Wird aber sicherlich ein separater LBS.(... und ich hab noch keine Idee wie das vernünftig zu lösen ist)
                      Grüße
                      Christian
                      __________________

                      Kommentar


                        #41
                        Zitat von trax Beitrag anzeigen
                        shum ... is das Gegenstück zu hhum / wobei letzteres der Sensorwert und erstes der Soll-Wert ist
                        DANKE

                        Zitat von trax Beitrag anzeigen
                        Kannst du in der APP die Luftfeuchte einstellen ?
                        Nein, es geht nur auf "entfeuchten" stellen (irgendwie blöd, man muss entfeuchten bis man es abdreht, ein interner Wert erreicht wird oder man löst es mit einem extern Sensor der die Daikin "abschaltet").

                        Zitat von trax Beitrag anzeigen
                        Was ich jedenfalls noch irgendwie umsetzen möchte ist die Verbrauchsdaten-Abfrage. Wird aber sicherlich ein separater LBS.(... und ich hab noch keine Idee wie das vernünftig zu lösen ist)
                        Für die VISU / Diagramm Enthusiasten sicher eine nette Sache ...
                        Wenn ich mir da die kWh anschaue, dann sollte ich das vielleicht nicht ständig vor den Augen haben ;-)
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          #42
                          Zitat von coliflower Beitrag anzeigen
                          Nein, es geht nur auf "entfeuchten" stellen
                          Wäre einen Versuch wert, mal einen shum Wert zu setzen und zu schauen ob Entfeuchten dann abschaltet.
                          Da meine Innengeräte keinen hhum (also IST) -Wert liefern, nehme ich an, dass kein Feuchtesensor vorhanden ist und ich das somit leider nicht testen kann.

                          Aber Dank deiner Information kann man bei manchen Modellen zumindest den IST-Wert auslesen - ist ja auch schon mal nicht schlecht.
                          (... auch wenn die vermutlich nur anzeigen was man ohnehin merkt: es ist zu trocken :-)
                          Grüße
                          Christian
                          __________________

                          Kommentar


                            #43
                            Zitat von trax Beitrag anzeigen
                            Wäre einen Versuch wert, mal einen shum Wert zu setzen und zu schauen ob Entfeuchten dann abschaltet.
                            Kann ich sicher testen wenn es den EINGANG gibt :-)
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar


                              #44
                              Zitat von coliflower Beitrag anzeigen
                              wenn es den EINGANG gibt :-)
                              ist stell das mal nicht gleich in den Downloadbereich ...
                              (Meine Innengeräte akzeptieren die Eingabe, jedoch ohne erkennbare Auswirkung... Mangels Sensor erwartungsgemäß)

                              + E9 ... Ziel-Luftfeuchte setzen
                              + A10 ... Luftfeuchte (von Sensor)
                              + A11 ... aktuell gesetzte Ziel-Luftfeuchte

                              PHP-Code:
                              ###[DEF]###
                              [name =DAIKIN-Control]

                              [e#1 important = IP]
                              [e#2 = Trigger]
                              [e#3 = Power]
                              [e#4 = Mode]
                              [e#5 = target Temp]
                              [e#6 = Fan]
                              [e#7 = FanDir]
                              [e#8 = Special]
                              [e#9 = Humidity]


                              [v#1    = 0    ] 
                              [v#2    = 0    ] 

                              [a#1 = Power]
                              [a#2 = Mode]
                              [a#3 = set Temp.]
                              [a#4 = Fan]
                              [a#5 = FanDir]
                              [a#6 = Room]
                              [a#7 = Special]
                              [a#8 = Outside]
                              [a#9 = Error]
                              [a#10 = Humidity]
                              [a#11 = Set Hum.]
                              ###[/DEF]###



                              ###[HELP]### 
                              <strong>DAIKIN-Control</strong> , V1.3<br>
                              EDOMI Baustein zur Steuerung von DAIKIN Klimaanlagen mit WiFi Modul BRP069A41 (u.Ä.)
                              ( unoffcial Daikin API documentation @ <a href="https://github.com/ael-code/daikin-control" target="_blank">github.com/ael-code/daikin-control</a>)

                              Änderungen der Einstellungen werden sofort nach eintreffen eines Telegramms am Eingang [E3]-[E8] an das Gerät weitergegeben. Eine automatische Datenabfrage aktualisiert die Ausgänge anschließend. Dem entsprechend kann immer nur eine Änderung auf einmal übertragen werden. 
                              Es werden nur (bisher bekannte) gültige Werte übertragen. Etwaige Fehler in der Kommunikation mit dem Gerät werden an [A9] als Klartext ausgegeben.
                              Eine manuelle Datenabfrage (z.B. zyklisch) kann über den Trigger-Eingang [E2] ausgelöst werden.
                              Der Eingang [E8] toggelt die Spezial-Funktionen Powerful, Econo und FlashStreamer entsprechend dem aktuellen Zustand. 
                              Die Luftfeuchte-Funktion der "Ururu Sarara" Modelle werden nicht unterstützt.

                              E1: IP Adresse des WiFi-Moduls 
                              E2: Trigger (Daten abholen)

                              E3: Betrieb (<strong>0 </strong>Aus, <strong>1 </strong>Ein)
                              E4: Modus (<strong>1 </strong>Auto, <strong>2 </strong>trocknen, <strong>3 </strong>kühlen, <strong>4 </strong>heizen, <strong>6 </strong>lüften)
                              E5: Zieltemperatur °C (min. 10, max 15 / .5) 
                              E6: Lüfterstufe (<strong>A </strong>Auto, <strong>B </strong>Silence, <strong>3-7</strong>)
                              E7: Flügelbewegung (<strong>0 </strong>Stopp, <strong>1 </strong>vertikal, <strong>2 </strong>horitontal, <strong>3 </strong>3D)
                              E8: Spezialfunktionen (<strong>TOGGLE </strong>(ein/aus)  <strong>1 </strong>Powerful , <strong>2 </strong>Econo, <strong>3 </strong>FlashStreamer)


                              A1: Betrieb (<strong>0</strong> Aus, <strong>1</strong> Ein)
                              A2: Modus (<strong>0 </strong>Standby <strong>1 </strong>Auto, <strong>2 </strong>trocknen, <strong>3 </strong>kühlen, <strong>4 </strong>heizen, <strong>6 </strong>lüften, , <strong>7 </strong>Auto(heizen))
                              A3: Zieltemperatur °C
                              A4: Lüfterstufe (<strong>A </strong>Auto, <strong>B </strong>Silence, <strong>3-7</strong>)
                              A5: Flügelbewegung (<strong>0 </strong>Stopp, <strong>1 </strong>vertikal, <strong>2 </strong>horitontal, <strong>3 </strong>3D)
                              A6: Raumtemperatur °C
                              A7: Spezialfunktion (<strong>0 </strong>, <strong>1 </strong>Powerful, <strong>2 </strong>Econo, <strong>3 </strong>FlashStreamer, <strong>13 </strong>Kombi 1+3, <strong>23 </strong>Kombi 2+3)
                              A8: Außentemperatur °C
                              A9: LBS Fehlermeldung


                              ChangeLog:

                              V1.0 { initial }
                              V1.1 { Bugfix; Außentemperatur auf E8 (Error auf E9) }
                              V1.2 { Spezial nicht möglich wenn Gerät AUS; Set Temp. im Modus 6 Lüften nicht möglich; Set Temp & Hum. bei Moduswechsel; Bugfixes }
                              V1.3 { mehr LOG bei (Netzwerk)Fehler, Bugfixes }
                              ###[/HELP]###


                              ###[LBS]###
                              <?
                              function LB_LBSID($id) {
                                  if ($E=logic_getInputs($id)) {
                                      if (!isEmpty($E[1]['value'])){ // check if IP (E1) is set
                                          // set var 1 to identify refreshed Input in EXEC
                                          if (!isEmpty($E[9]['value']) && $E[9]['refresh']==1) logic_setVar($id,1,9);        
                                          if (!isEmpty($E[8]['value']) && $E[8]['refresh']==1) logic_setVar($id,1,8);        
                                          if (!isEmpty($E[7]['value']) && $E[7]['refresh']==1) logic_setVar($id,1,7);
                                          if (!isEmpty($E[6]['value']) && $E[6]['refresh']==1) logic_setVar($id,1,6);
                                          if (!isEmpty($E[5]['value']) && $E[5]['refresh']==1) logic_setVar($id,1,5);
                                          if (!isEmpty($E[4]['value']) && $E[4]['refresh']==1) logic_setVar($id,1,4);
                                          if (!isEmpty($E[3]['value']) && $E[3]['refresh']==1) logic_setVar($id,1,3);
                                          // if Trigger (E2) refresh data (var 1 = 1);
                                          if (!isEmpty($E[1]['value']) && $E[2]['refresh']==1) logic_setVar($id,1,1);
                                  
                                          if (logic_getVar($id,2) < 1) logic_callExec(LBSID,$id);
                                          // block executing while running
                                          logic_setVar($id,2,1); 
                                      }
                                  }
                              }
                              ?>
                              ###[/LBS]###


                              ###[EXEC]###
                              <?
                              ///// CONSTANT //////
                              define ("LOG", true);
                              define ("DEBUG", false);
                              define ("LOG1680","LBS19001680 - DAIKIN-Control");
                              define ("LOG_STEP",'0');
                              define ("LOG_ERROR",'1');
                              define ("LOG_DETAIL",'2');
                              define ("GetBasicInfo","common/basic_info");
                              define ("GetModelInfo","/aircon/get_model_info");
                              define ("GetControlInfo","aircon/get_control_info");
                              define ("SetControlInfo","aircon/set_control_info?");
                              define ("GetSensorInfo","aircon/get_sensor_info");
                              define ("SetSpecialMode","aircon/set_special_mode?");
                              define ("Get2DayPower","aircon/get_day_power_ex?days=2");
                              define ("Get7DayPower","aircon/get_day_power_ex?days=7");
                              define ("GetWeekPower","aircon/get_week_power_ex");
                              define ("GetYearPower","aircon/get_year_power_ex");
                              define ("RebootAP","common/reboot");


                              ////// SUBS ////////

                              function DataTransfer($URL) { //returns false, or parameter-array
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "HTTP GET: ".$URL);
                                      if ($request= curl_init($URL)) {
                                           curl_setopt($request, CURLOPT_RETURNTRANSFER, true); // get the returned answer
                                          if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Request init OK, requesting...");
                                          if ($content = curl_exec($request) ){ // 
                                              curl_close($request);
                                              if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "returned content: ".$content);
                                              $content = strtr ( $content , ',' , '&'); /// replace separator with '&'  (easy use of parse_str)
                                              parse_str($content, $output);                 
                                              if ($output['ret'] == 'OK') { // data accepted if device returns ret=OK
                                                  if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "data transfer: OK");
                                                  unset($output['ret']); // remove ret
                                                  return $output; 
                                              }
                                              else {
                                                  if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "data transfer: NOT OK");
                                                  return false;
                                              }
                                          }
                                          else {
                                              if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "executing url ".$URL." failed!");            
                                              if (LOG) writeToCustomLog(LOG1680, LOG_DETAIL, "cURL-Error: ".curl_error($request));
                                  
                                              curl_close($request);
                                              return false;
                                          }
                                      }
                                      if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "init url ".$URL." failed!");
                                      if (LOG) writeToCustomLog(LOG1680, LOG_DETAIL, "cURL-Error: ".curl_error($request));
                                      return false;
                              }

                              function SetInfo($IP, $PARAM, $ID) {
                                  if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "changing parameter...");
                                  // get Control Info Data array 
                                  if ($controlInfo = DataTransfer("http://".$IP."/".GetControlInfo)) {
                                  if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Control Info Array: OK");
                                  }
                                  else {
                                      if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "Getting Control-Info from ".$IP." failed!");
                                      return false;
                                  }
                                  
                                  $E=logic_getInputs($ID);    

                                  if ($PARAM == 3) { // change Power
                                      $pow = $E[3]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input power=".$pow);
                                      switch ($pow) { // if input valid set value
                                          case 0;    case 1: 
                                          $controlInfo['pow']=$pow;
                                          break;
                                          
                                          default: if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "wrong power mode ".$pow);
                                          return false;
                                      }
                                  }

                                  if ($PARAM == 4) { // change Mode 
                                      $mode = $E[4]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input mode=".$mode);
                                      switch ($mode) { // if input valid set value
                                          case 1; case 2; case 3;    case 4:
                                          $controlInfo['mode']=$mode;
                                          // set the temperatur & humidity to last temp on that mode
                                          if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "dt".$mode." = ".$controlInfo['dt'.$mode]);
                                          $controlInfo['stemp']=$controlInfo['dt'.$mode]; 
                                          if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "dh".$mode." = ".$controlInfo['dh'.$mode]);            
                                          $controlInfo['shum']=$controlInfo['dh'.$mode]; 
                                          break;

                                          case 6: // does not accept to set a temperature
                                          $controlInfo['mode']=$mode;
                                          break;

                                          default: if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "wrong mode ".$mode);
                                          return false;
                                      }
                                  }
                                  
                                  if ($PARAM == 5) { // change target temperature
                                      if ($controlInfo['mode']==6) { // dry-mode = no temp !
                                          logic_setOutput($ID,9,"Unit in fan mode ! (no Temp.)");    
                                          if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "Unit ".$IP." in Fan-Mode, setting Temp. not possible");
                                          return true;
                                      }
                                      $temp = $E[5]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input temp=".$temp);
                                      $max = 31;
                                      $min = 18;
                                      if ($controlInfo['mode']== 3) $max=33; // cold, accepted max = 33°C
                                      if ($controlInfo['mode']== 4) $min=10; // heat, accepted min = 10°C
                                      if (($temp >= $min) && ($temp <= $max)) $controlInfo['stemp'] = round($temp*2) / 2; // smallest temperatur step 0.5°C
                                      else if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "temp (".$temp.") outside range [".$min."]/[.".$max."]");
                                  }
                                  
                                  if ($PARAM == 6) { // change fan speed
                                      $fan = $E[6]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input fan=".$fan);
                                      switch ($fan) { // if input valid set value
                                          case 'A';case 'B';case 3;case 4;case 5;case 6;case 7: 
                                          $controlInfo['f_rate']=$fan;
                                          break;
                                  
                                          default: if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "wrong fan speed ".$fan);
                                                  return false;
                                      }
                                  }
                                  if ($PARAM == 7) {    // change fan direction
                                      $fanDir = $E[7]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input fanDir=".$fanDir);
                                      switch ($fanDir) { // if input OK set value
                                          case 0;    case 1;    case 2;    case 3:
                                          $controlInfo['f_dir']=$fanDir;
                                          break;
                                          default: if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "wrong fan direction ".$fanDir);
                                                  return false;
                                      }
                                  }
                                  
                                  if ($PARAM == 9) {    // change fan direction
                                      $humidity = $E[9]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input Humidityr=".$humidity);
                                      if (($humidity >= 1) && ($humidity <= 100)) $controlInfo['shum']= $humidity;
                                      else if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "humidity (".$humidity.") outside range");
                                      
                                  }
                                  
                              // Build the Control-Info url  
                                  
                                  $url = "http://".$IP."/".SetControlInfo;
                                  $url.=http_build_query($controlInfo);

                              // for special - special url is needed

                                  if ($PARAM == 8) { // change special
                                      $special = $E[8]['value'];
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Input special=".$special." adv=".$controlInfo['adv']);
                                      
                                      if ($controlInfo['pow'] == 0) { // device is off = set special function not possible
                                          logic_setOutput($ID,9,"Unit OFF, not possible !");    
                                          if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "Special ".$special." not possible while unit ".$IP." OFF");
                                          return true;
                                      }
                                      
                                      $url = "http://".$IP."/".SetSpecialMode;
                                      if (isEmpty($controlInfo['adv'])) $controlInfo['adv']="0";
                                      switch ($special) {
                                          case 0: $url.="set_spmode=0&spmode_kind=1&en_streamer=0";
                                                  break;
                                          // Powerfull                    
                                          case 1:    if (strpos (strval($controlInfo['adv']), "2") > -1 && strpos (strval($controlInfo['adv']), "2") < 1) $url.="set_spmode=0&spmode_kind=1";
                                                  else $url.="set_spmode=1&spmode_kind=1";
                                                  break;
                                          // Econo        
                                          case 2: if (strpos (strval($controlInfo['adv']), "12") > -1) $url.="set_spmode=0&spmode_kind=2";
                                                  else $url.="set_spmode=1&spmode_kind=2";                    
                                                  break;
                                          // Flashstreamer                                    
                                          case 3: if (strpos (strval($controlInfo['adv']), "13" ) > -1 ) $url.="en_streamer=0";
                                                  else $url.="en_streamer=1";                
                                                  break;
                                                                      
                                          default: if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "wrong special ".$special);
                                                  return false;
                                      }
                                      
                                  }

                                  // transfer data and return
                                  if ($returnInfo = DataTransfer($url))     return true;
                                  
                                  
                                  if (DEBUG)    writeToCustomLog(LOG1680, LOG_ERROR, "Set Data FAILED");
                                  return false;
                              }




                              ////// MAIN ////////

                              // needed things ...
                              require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
                              set_time_limit(20);    //runtime limit 20sec
                              sql_connect();    

                              // get the IP from Input 1
                              $E=logic_getInputs($id);
                              $ip = $E[1]['value'];
                              logic_setOutput($id,9," "); // reset error msg
                              // get which Paramter to change from LBS var 1
                              $infoToChange = logic_getVar($id,1);
                              if ($infoToChange > 1) { // submit paramter change
                                  if (SetInfo($ip, $infoToChange, $id) == false) {
                                  // if something went wrong - report
                                  logic_setOutput($id,9,"change parameter failed !");    
                                   if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "transfer ControlInfo-".$infoToChange." to ".$ip." failed");
                                  }
                                  else if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "...data transfered");
                              }

                              // get actual State from Devive @ IP
                              if ($controlInfo = DataTransfer("http://".$ip."/".GetControlInfo)) {
                                      // set the outputs [a#1 = Power] [a#2 = Mode] [a#3 = set Temp.] [a#4 = Fan] [a#5 = FanDir]
                                      logic_setOutput($id,1,$controlInfo['pow']);
                                      logic_setOutput($id,2,$controlInfo['mode']);
                                      logic_setOutput($id,3,$controlInfo['stemp']);
                                      logic_setOutput($id,4,$controlInfo['f_rate']);
                                      logic_setOutput($id,5,$controlInfo['f_dir']);
                                      
                                      logic_setOutput($id,11,$controlInfo['shum']);
                                                      
                                      // translate adv (2;12;13;2/13;12/13) 
                                      switch ($controlInfo['adv']) {
                                          case "2": logic_setOutput($id,7,1);
                                                      break;
                                          case "12": logic_setOutput($id,7,2);
                                                      break;
                                          case "13": logic_setOutput($id,7,3);
                                                      break;
                                          case "2/13": logic_setOutput($id,7,13);
                                                      break;
                                          case "12/13": logic_setOutput($id,7,23);
                                                      break;
                                          default:    logic_setOutput($id,7,0);
                                                      break;            
                                      }        
                                      
                                      if (DEBUG)    writeToCustomLog(LOG1680, LOG_STEP, "Outputs set");
                                  
                              }
                              else {
                                      logic_setOutput($id,9,"Getting Control Info failed!");
                                      if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "Getting Control-Info from ".$ip." failed!");
                              }
                              // get actual SensorInfo from Devive
                              if ($sensorInfo = DataTransfer("http://".$ip."/".GetSensorInfo)) {
                                      // set  output [a#6 = Room]
                                      logic_setOutput($id,6,$sensorInfo['htemp']);    
                                      // set  output [a#8 = Outside]
                                      logic_setOutput($id,8,$sensorInfo['otemp']);    
                                      // set  output [a#10 = Humidity]
                                      logic_setOutput($id,10,$sensorInfo['hhum']);    
                              }
                              else {
                                      logic_setOutput($id,9,"Getting Sensor Info failed!");
                                       if (LOG) writeToCustomLog(LOG1680, LOG_ERROR, "Getting Sensor-Info from ".$ip." failed!");
                              }

                              /// done ///
                              logic_setVar($id,2,0); // signal to LBS

                              sql_disconnect();
                              ?>
                              ###[/EXEC]###
                              Grüße
                              Christian
                              __________________

                              Kommentar


                                #45
                                Hier die Werte in der Logik und Log:

                                Bildschirmfoto 2018-09-02 um 12.56.24.png

                                Code:
                                 [TABLE="border: 0, cellpadding: 0, cellspacing: 0"]
                                 	 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]198339[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_control_info[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]199743[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]Request init OK, requesting...[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]310798[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]returned content: ret=OK,pow=1,mode=2,adv=,stemp=M,shum=45,dt1=25.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=25.0,dh1=0,dh2=45,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=2,b_stemp=M,b_shum=45,alert=255,f_rate=A,f_dir=0,b_f_rate=A,b_f_dir=0,dfr1=A,dfr2=A,dfr3=A,dfr4=5,dfr5=5,dfr6=5,dfr7=A,dfrh=5,dfd1=0,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=0,dfdh=0,dmnd_run=0,en_demand=0[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]311371[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]data transfer: OK[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]323837[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]Outputs set[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]324189[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]HTTP GET: http://10.0.30.2/aircon/get_sensor_info[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]325064[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]Request init OK, requesting...[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]428550[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]returned content: ret=OK,htemp=24.0,hhum=50,otemp=17.0,err=0,cmpfreq=22[/TD]
                                 		[/TR]
                                 		[TR]
                                 			[TD]2018-09-02 13:03:27[/TD]
                                 			[TD]429202[/TD]
                                 			[TD]625[/TD]
                                 			[TD]0[/TD]
                                 			[TD]data transfer: OK[/TD]
                                 		[/TR]
                                 	 [/TABLE]
                                Danke und LG, Dariusz
                                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                                Kommentar

                                Lädt...
                                X