Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Luxtronic2 (Wärmepumpen von AlphaInnotec, Siemens etc.)

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

    #46
    Wie sehen deine items dazu aus?

    Kommentar


      #47
      [messen]
      [[wp]]
      [[[temp_aussen]]]
      type = num
      lux2 = 15
      visu_acl = rw

      Kommentar


        #48
        Versuchs mal mit lux2_a = 15

        Wobei du aber anscheinend nur Werte vom Typ Atttibut erhältst. Die Aussentemperatur ist bei mir aber unter Typ Calculated.

        Kommentar


          #49
          Dann steht in dem Wert eine 1.0 die auch in den Attribut mit der Nummer 15 stand. Das ist aber leider nicht die aktuelle Aussentemperatur

          Kommentar


            #50
            Zitat von android Beitrag anzeigen
            Wenn ich
            sudo python /usr/smarthome/plugins/luxtronic2/__init__.py ausführe dann bekomme ich 0 Parameters: 327 Attributes: 1 = 1 2 = 1 3 = 1 4 = 0 5 = 0 6 = 1 7 = 0 8 = 1 9 = 1 10 = 0 11 = 0 12 = 0 13 = 0 14 = 1 15 = 1 16 = 1 17 = 1 18 = 1 19 = 1 20 = 1 21 = 1 22 = 1 23 = 1 24 = 1 25 = 1 26 = 1 27 = 1 28 = 1 29 = 1 30 = 1 31 = 1 32 = 1 33 = 1 34 = 0 35 = 0 36 = 0 37 = 1 38 = 1 39 = 1 40 = 1 41 = 0 42 = 1 43 = 1 44 = 1 45 = 0 46 = 0 47 = 1 48 = 0 49 = 1 50 = 1 51 = 1 52 = 1 53 = 1 54 = 0 55 = 1 56 = 1 57 = 0 58 = 1 59 = 1 60 = 1 61 = 1 62 = 1 63 = 1 64 = 1 65 = 0 66 = 0 67 = 0 68 = 1 69 = 1 70 = 0 71 = 0 72 = 1 73 = 1 74 = 1 75 = 1 76 = 1 77 = 1 78 = 1 79 = 1 80 = 1 81 = 1 82 = 0 83 = 0 84 = 0 85 = 1 86 = 0 87 = 0 88 = 1 89 = 1 90 = 1 91 = 1 92 = 0 93 = 1 94 = 1 95 = 1 96 = 0 97 = 1 98 = 0 99 = 1 100 = 1 101 = 0 102 = 0 103 = 0 104 = 1 105 = 1 106 = 0 107 = 1 108 = 1 109 = 1 110 = 1 111 = 1 112 = 1 113 = 1 114 = 0 115 = 0 116 = 0 117 = 1 118 = 1 119 = 0 120 = 1 121 = 1 122 = 1 123 = 1 124 = 1 125 = 0 126 = 0 127 = 0 128 = 0 129 = 0 130 = 0 131 = 1 132 = 1 133 = 1 134 = 1 135 = 1 136 = 1 137 = 1 138 = 0 139 = 0 140 = 0 141 = 0 142 = 0 143 = 1 144 = 0 145 = 1 146 = 1 147 = 1 148 = 1 149 = 1 150 = 1 151 = 1 152 = 1 153 = 1 154 = 0 155 = 0 156 = 0 157 = 0 158 = 0 159 = 0 160 = 0 161 = 1 162 = 1 163 = 1 164 = 1 165 = 1 166 = 1 167 = 1 168 = 1 169 = 1 170 = 1 171 = 1 172 = 1 173 = 1 174 = 1 175 = 1 176 = 1 177 = 1 178 = 1 179 = 1 180 = 1 181 = 1 182 = 1 183 = 1 184 = 1 185 = 1 186 = 1 187 = 1 188 = 1 189 = 1 190 = 1 191 = 1 192 = 1 193 = 1 194 = 1 195 = 0 196 = 1 197 = 1 198 = 0 199 = 1 200 = 1 201 = 1 202 = 1 203 = 0 204 = 0 205 = 1 206 = 1 207 = 1 208 = 1 209 = 1 210 = 0 211 = 0 212 = 0 213 = 0 214 = 0 215 = 1 216 = 0 217 = 0 218 = 1 219 = 1 220 = 0 221 = 1 222 = 0 223 = 1 224 = 1 225 = 1 226 = 1 227 = 0 228 = 0 229 = 1 230 = 1 231 = 1 232 = 1 233 = 1 234 = 1 235 = 1 236 = 1 237 = 0 238 = 1 239 = 1 240 = 0 241 = 0 242 = 1 243 = 0 244 = 0 245 = 1 246 = 0 247 = 1 248 = 1 249 = 0 250 = 1 251 = 0 252 = 0 253 = 1 254 = 1 255 = 1 256 = 0 257 = 0 258 = 0 259 = 0 260 = 0 261 = 0 262 = 0 263 = 0 264 = 0 265 = 0 266 = 0 267 = 0 268 = 0 269 = 0 270 = 0 271 = 0 272 = 0 273 = 0 274 = 0 275 = 0 276 = 0 277 = 0 278 = 0 279 = 0 280 = 1 281 = 0 282 = 0 283 = 0 284 = 0 285 = 1 286 = 0 287 = 1 288 = 1 289 = 0 290 = 1 291 = 1 292 = 0 293 = 1 294 = 1 295 = 1 296 = 1 297 = 1 298 = 1 299 = 0 300 = 0 301 = 1 302 = 0 303 = 1 304 = 1 305 = 1 306 = 0 307 = 0 308 = 0 309 = 0 310 = 0 311 = 0 312 = 0 313 = 1 314 = 0 315 = 1 316 = 0 317 = 1 318 = 0 319 = 0 320 = 0 321 = 0 322 = 0 323 = 1 324 = 0 325 = 0 326 = 0 327 = 0 0 Calculated: cycle takes 0.00839114189148 seconds

            Danke.
            Ganz unten steht bei dir 0 Calculated. Da liegt, denke ich, das Problem. Sämtliche Temp-Werte sollten eigentlich da drinnen stehen.

            Welche Firmware hat deine WP?

            Kommentar


              #51
              Hallo,

              bin leider immer noch nicht weitergekommen. Software Version ist V3.78.

              Hatte in einem anderen Beitrag https://knx-user-forum.de/forum/supp...blem-luxtronik gelesen das sich der Port geändert hat:

              Zitat von MrDuFF Beitrag anzeigen
              Welche FW-Version hast du denn drauf ?? Bei der V 1.76 hat sich nämlich der Port auf 8889 geändert
              Aber mit dem Port bekomme ich gar keine Daten, also auch die Attribute nicht mehr. Aber meine Softwareversion ist ja auch wesentlich neuer.

              Hat das überhaupt einer damit am laufen? Oder sonst noch jemand eine Idee?

              Kommentar


                #52
                Ich besitze eine Wärmepumpe SWC80HKE von Alpha Innotech mit einer Luxtronik2 Steuerung (Firmware 1.80). Ich notiere hier ein paar Dinge, die ich herausgefunden habe. Vielleicht ist es auch für andere hilfreich.

                Die Parameter (lesen/schreiben) auf der Schnittstelle "lux2_p" sind wie folgt zu benutzen:

                Code:
                #   1 = HEATING_TEMPERATURE       : [°C] (muss /10 geteilt werden)
                #
                #   2 = WARMWATER_TEMPERATURE     : [°C] (muss /10 geteilt werden)
                #
                #   3 = HEATING_OPERATION_MODE    : AUTOMATIC(0)         - Automatik
                #                                   AUXILIARY_HEATER(1)  - Zuzatzheizer
                #                                   PARTY(2)             - Party
                #                                   HOLIDAY(3)           - Urlaub
                #                                   OFF(4)               - Aus
                #
                #   4 = WARMWATER_OPERATION_MODE  : AUTOMATIC(0)         - Automatik
                #                                   AUXILIARY_HEATER(1)  - Zuzatzheizer
                #                                   PARTY(2)             - Party
                #                                   HOLIDAY(3)           - Urlaub
                #                                   OFF(4)               - Aus
                #
                # 108 = COOLING_OPERATION_MODE    : OFF(0)               - Aus
                #                                   AUTOMATIC(1)         - Automatik
                #
                # 110 = COOLING_RELEASE_TEMP      : [°C] (muss /10 geteilt werden)
                #
                # 132 = COOLING_INLET_TEMP        : [°C] (muss /10 geteilt werden)
                #
                # 850 = COOLING_START             : [h] (muss /10 geteilt werden)
                #
                # 851 = COOLING_STOP              : [h] (muss /10 geteilt werden)
                Die entsprechende Datei in "items" ist wie folgt aufgebaut:

                Code:
                [wp]
                  [[para]]
                    [[[HEATING_OPERATION_MODE]]]
                        type = num
                        lux2_p = 3                  # 0 = Auto
                        visu_acl = rw
                    [[[HEATING_TEMPERATURE]]]
                        type = num
                        lux2_p = 1                  # [°C] (muss /10 geteilt werden)
                        visu_acl = rw
                    [[[WARMWATER_OPERATION_MODE]]]
                        type = num
                        lux2_p = 4                  # 0 = Auto
                        visu_acl = rw
                    [[[WARMWATER_TEMPERATURE]]]
                        type = num
                        lux2_p = 2                  # [°C] (muss /10 geteilt werden)
                        visu_acl = rw
                    [[[COOLING_OPERATION_MODE]]]
                        type = num
                        lux2_p = 108                # 1 = Auto
                        visu_acl = rw
                    [[[COOLING_RELEASE_TEMP]]]
                        type = num
                        lux2_p = 110                # [°C] (muss /10 geteilt werden)
                        visu_acl = rw
                    [[[COOLING_INLET_TEMP]]]
                        type = num
                        lux2_p = 132                # [°C] (muss /10 geteilt werden)
                        visu_acl = rw
                    [[[COOLING_START]]]
                        type = num
                        lux2_p = 850                # [h] (muss /10 geteilt werden)
                        visu_acl = rw
                    [[[COOLING_STOP]]]
                        type = num
                        lux2_p = 851                # [h] (muss /10 geteilt werden)
                        visu_acl = rw
                Ich habe in einem eigenen Plugin mit Hilfe dieser Parameter eine Optimierung für den Eigenverbrauch meiner PV-Energie gemacht. Sobald genügend Energie zur Verfügung steht, heize ich das Brauchwasser auf. Dazu gehe ich wie folgt vor (Pseudo-Code):
                1. WARMWATER_OPERATION_MODE = PARTY
                2. WARMWATER_TEMPERATURE = gewünschter Zielwert
                3. warten, bis Brauchwasser aufgeheizt ist
                4. WARMWATER_OPERATION_MODE = AUTOMATIC
                5. WARMWATER_TEMPERATURE = ursprünglicher Zielwert

                Der Modus PARTY ignoriert die Zeitsperren der Luxtronik2, was für mich optimal ist. Ich sperre die Brauchwassererwärmung im Hochtarif explizit.

                Gruss

                Matthias

                Kommentar


                  #53
                  Habe ein ähnliches Skript mit sehr schöner Dokumentation gefunden:

                  https://github.com/Bouni/Luxtronik-2...cumentation.md

                  Hier werden immer nur 4 Byte blöcke benutzt, in diesem Plugin hier unterschiedliche Blockgrößen. Bei mir funktioniert nur die Variante mit 4Byte Blöcken.

                  Meine Wärmepumpe hat auch den Port 8889, vielleicht hat sich da auch was am Aufbau der Telegramme geändert?!

                  Werde meine abgeänderte Version des Plugins heute Abend mal noch posten. Evtl hilfts ja noch wem weiter.

                  Kommentar


                    #54
                    Habe es endlich mal geschafft das Plugin auf 4Byte zu ändern und zu testen. Es funktioniert, aber leider macht es nun jede Menge Threads auf. Hat jemand eine Idee wo das Problem ist?

                    Code:
                    [COLOR=#569cd6]def[/COLOR][COLOR=#dcdcaa]refresh_calculated[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]self[/COLOR][COLOR=#d4d4d4]):[/COLOR]
                    [COLOR=#d4d4d4]       request = struct.pack([/COLOR][COLOR=#ce9178]'!ii'[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#b5cea8]3004[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#569cd6]       self[/COLOR][COLOR=#d4d4d4]._lock.acquire()[/COLOR]
                    [COLOR=#d4d4d4]       answer = [/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4]._request(request, [/COLOR][COLOR=#b5cea8]4[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#c586c0]       if [/COLOR][COLOR=#dcdcaa]len[/COLOR][COLOR=#d4d4d4](answer) != [/COLOR][COLOR=#b5cea8]4[/COLOR][COLOR=#d4d4d4]:[/COLOR]
                    [COLOR=#569cd6]           self[/COLOR][COLOR=#d4d4d4]._lock.release()[/COLOR]
                    [COLOR=#569cd6]           self[/COLOR][COLOR=#d4d4d4].close()[/COLOR]
                    [COLOR=#c586c0]           raise[/COLOR][COLOR=#d4d4d4] luxex([/COLOR][COLOR=#ce9178]"error receiving answer: no data"[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]           answer = struct.unpack([/COLOR][COLOR=#ce9178]'!i'[/COLOR][COLOR=#d4d4d4], answer)[/COLOR]
                    [COLOR=#c586c0]      if[/COLOR][COLOR=#d4d4d4] answer[[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]] != [/COLOR][COLOR=#b5cea8]3004[/COLOR][COLOR=#d4d4d4]:[/COLOR]
                    [COLOR=#569cd6]            self[/COLOR][COLOR=#d4d4d4].logger.warning([/COLOR][COLOR=#ce9178]"Luxtronic2: failed to retrieve calculated"[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#c586c0]            return[/COLOR][COLOR=#b5cea8] 0[/COLOR]
                    [COLOR=#d4d4d4]       data = [/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4]._request_more([/COLOR][COLOR=#b5cea8]4[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]       status = struct.unpack([/COLOR][COLOR=#ce9178]'!i'[/COLOR][COLOR=#d4d4d4], data)[[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]][/COLOR]
                    [COLOR=#d4d4d4]       data = [/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4]._request_more([/COLOR][COLOR=#b5cea8]4[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]       length = struct.unpack([/COLOR][COLOR=#ce9178]'!i'[/COLOR][COLOR=#d4d4d4], data)[[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]][/COLOR]
                    [COLOR=#d4d4d4]       calcs = [][/COLOR]
                    [COLOR=#c586c0]       for[/COLOR][COLOR=#d4d4d4] i [/COLOR][COLOR=#569cd6]in[/COLOR][COLOR=#dcdcaa]range[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4], length):[/COLOR]
                    [COLOR=#d4d4d4]           calc = [/COLOR][COLOR=#569cd6]self[/COLOR][COLOR=#d4d4d4]._request_more([/COLOR][COLOR=#b5cea8]4[/COLOR][COLOR=#d4d4d4])[/COLOR]
                    [COLOR=#d4d4d4]           calcs.append(struct.unpack([/COLOR][COLOR=#ce9178]'!i'[/COLOR][COLOR=#d4d4d4], calc)[[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]])[/COLOR]
                    [COLOR=#c586c0]        if[/COLOR][COLOR=#dcdcaa]len[/COLOR][COLOR=#d4d4d4](calcs) > [/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]:[/COLOR]
                    [COLOR=#569cd6]           self[/COLOR][COLOR=#d4d4d4]._calc = calcs[/COLOR]
                    [COLOR=#c586c0]           return[/COLOR][COLOR=#d4d4d4] status[/COLOR]
                    [COLOR=#c586c0]        return[/COLOR][COLOR=#b5cea8]0[/COLOR]
                    Sorry für die Einrückungen, kriege es nicht besser eingefügt. Jemand einen Tipp wie man Code kopiert, sodass es auch klappt die Einrückungen zu behalten?
                    Angehängte Dateien
                    Zuletzt geändert von android; 09.02.2020, 10:41.

                    Kommentar


                      #55
                      android Tipp Zum Code kopieren: Seit einem Security Update der Forum Software von knx-user-forum wird beim Paste fast alles aus dem eingefügten Text entfernt (so auch CRs und führende Leerzeichen).

                      Damit diese Formatierung erhalten bleibt muss man vor dem Paste in den "Quellmode" umschalten, also:
                      • zuerst einen CODE Block erzeugen (mit dem Button #)
                      • anschließend in den "Quellmode schalten (Button ganz links Dokument mit <>)
                      • Jetzt den Text zwischen CODE und /CODE pasten
                      • den "Quellmode" durch erneutes drücken des Buttons wieder ausschalten.
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        #56
                        Hallo zusammen

                        ich kann leider das Plugin nicht starten:

                        Code:
                        root@Visu:/usr/local/smarthome/bin# python /usr/local/smarthome/plugins/luxtronic2/__init__.py
                        Traceback (most recent call last):
                        File "/usr/local/smarthome/plugins/luxtronic2/__init__.py", line 31, in <module>
                        from lib.model.smartplugin import SmartPlugin
                        ImportError: No module named lib.model.smartplugin
                        root@Visu:/usr/local/smarthome/bin#
                        Das File smartplugin.py ist vorhanden
                        Gruss Oliver

                        Projektleiter Technische Gebäudeausrüstung

                        Kommentar


                          #57
                          Plugins lassen sich nicht starten. Sie funktionieren nur in einer laufenden SmartHomeNG Instanz!
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            #58
                            Zitat von Msinn Beitrag anzeigen
                            Plugins lassen sich nicht starten. Sie funktionieren nur in einer laufenden SmartHomeNG Instanz!
                            Shng ist am laufen

                            Zitat von 2ndsky Beitrag anzeigen
                            Testweise kann man das Plugin auch direkt als Python Programm ausführen


                            Code:

                            python /usr/local/smarthome/plugins/luxtronic2/__init__.py
                            Gruss Oliver

                            Projektleiter Technische Gebäudeausrüstung

                            Kommentar


                              #59
                              Du hast aber versucht das Plugin als eigenständiges Programm zu starten. Das funktioniert nicht.

                              Du musst es schon in SmartHomeNG konfigurieren und dann SmartHomeNG neu starten, damit das Plugin mit geladen wird.
                              Viele Grüße
                              Martin

                              There is no cloud. It's only someone else's computer.

                              Kommentar


                                #60
                                Zitat von Msinn Beitrag anzeigen
                                Du hast aber versucht das Plugin als eigenständiges Programm zu starten. Das funktioniert nicht.

                                Du musst es schon in SmartHomeNG konfigurieren und dann SmartHomeNG neu starten, damit das Plugin mit geladen wird.

                                Funktioniert eben nicht, SHNG ist gestartet Plugin konfiguriert aber es erscheint auch nicht in der Übersicht der Plugins

                                Gruss Oliver

                                Projektleiter Technische Gebäudeausrüstung

                                Kommentar

                                Lädt...
                                X