Ankündigung

Einklappen
Keine Ankündigung bisher.

Sommer / Winterumschaltung nach DIN

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

    #16
    ok, aber dann habe ich kein "gewichtetes" Mittel wie in der Din sondern einfach einen average.
    Außerdem sendet mir die Quadra bei jeder Änderung der Temperatur > 0.5 Grad einen Wert, das kann - je nach Temperaturverlauf - sehr schnell in die Hose gehen.
    never fummel a running system...

    Kommentar


      #17
      Ich sehe ehrlich gesagt den Vorteil deiner viel komplizierteren Lösung nicht. Um immer ein Ergebnis zu haben, kannst du in meinem Item einfach das if weglassen und im init die aktuelle Temperatur setzen. Aber das Ergebnis bringt nicht viel, weil es selbst im Hochsommer um 07:00 oft unter 16°C ist und hingegen auch im Spätherbst z.B. um 14:00 über 16°C sein kann.
      Da wäre cache=yes noch die bedeutend bessere Lösung, weil man ja meistens einen unmittelbaren Neustart macht und kein Messpunkt verpasst wird.

      Kommentar


        #18
        Zitat von TRex Beitrag anzeigen
        ok, aber dann habe ich kein "gewichtetes" Mittel wie in der Din sondern einfach einen average.
        Außerdem sendet mir die Quadra bei jeder Änderung der Temperatur > 0.5 Grad einen Wert, das kann - je nach Temperaturverlauf - sehr schnell in die Hose gehen.
        Das mit den Mitteln kommt doch daher weil man nicht in der Nacht aufstehen will zum Messen. Es reicht meiner Meinung auch das ganze einmal am tag zu berechnen.

        Kommentar


          #19
          Hi,

          konnte mir nicht erklären, wo man so etwas braucht, habe mal gesucht und folgendes (mit script) gefunden:

          Moin zusammen, da ich o.g. Funktion im SVN nicht finden konnte habe ich mir da kurzerhand selbst beholfen und ein Plugin dafür erstellt. Vielleicht gibt es

          Kommentar


            #20
            gut, dem einen mag das zu kompliziert sein, ich bin damit jetzt happy.
            Die DIN Berechnung scheint mir schon auf der richtigen Basis zu fussen, ich glaube nicht dass das etwas mit aufstehen usw zu tun hat sondern mit der Erwärmung und Abstahlung des Environment drumrum. Nach einem Sommertag hast eben um 22 00 noch mehr Restwärme als nach einem Frühjahrstag, an dem das Mittel dann durchaus mal 16 grad sein kann. Die Familie DIN wird sich dabei ja was gedacht haben....
            jeder, wie er es will.
            never fummel a running system...

            Kommentar


              #21
              TRex Ich versuche das hier gerade mal zu nutzen....
              Bekomme aber immer diese Meldung im Log:

              Code:
              2018-05-18  22:00:00 ERROR    logics.sommer Logic: logics.sommer, File: /usr/local/smarthome/logics/sommer.py, Line: 15, Method: <module>, Exception: list index out of range
              Traceback (most recent call last):
                File "/usr/local/smarthome/lib/scheduler.py", line 425, in _task
                  exec(obj.bytecode)
                File "/usr/local/smarthome/logics/sommer.py", line 15, in <module>
                  if sh.GLOBAL.Sommer.digits()[i] == '':
              IndexError: list index out of range
              Kann es sein, dass die Liste erst einmal von Hand gefüllt werden muss?

              Kommentar


                #22
                ich habe den Value als Cache=true und einmal vorbelegt mit
                value=[,,,,,]
                never fummel a running system...

                Kommentar


                  #23
                  OK, so etwas in der Art hatte ich mir gedacht.

                  Danke!

                  Kommentar


                    #24
                    Hier der Vollständigkeit halber noch die fertige, funktionierende Logik:

                    Code:
                    #!/usr/bin/env python
                    # import random, math,time, datetime, re
                    import time
                    
                    lvar=[]
                    aktual=round(float(sh.mein_wetter.temperatur()),1)
                    
                    #einlesen der list
                    if not sh.GLOBAL.Sommer.digits():
                        sh.GLOBAL.Sommer.digits(['','','','',''])
                    for i in range(5):
                        if sh.GLOBAL.Sommer.digits()[i] == '':
                            lvar.append(aktual)
                        else:
                            lvar.append(float(sh.GLOBAL.Sommer.digits()[i]))
                    
                    # logger.info('Time: '+time.strftime('%H')+' Temp: '+str(aktual))
                    # logger.info('var1: '+str(lvar[0])+' var2:'+str(lvar[1])+' var3: '+str(lvar[2])+' var4: '+str(lvar[3])+' var5: '+str(lvar[4]))
                    
                    if time.strftime('%H') == '07':
                       lvar[0]=aktual
                       lvar[4]=lvar[3]
                       lvar[3]=round((lvar[0]+lvar[1]+lvar[2]+lvar[2])/4,1)
                    
                    if time.strftime('%H') == '14':
                       lvar[1]=aktual
                    
                    if time.strftime('%H') == '22':
                       lvar[2]=aktual
                    
                    # logger.info('var1: '+str(lvar[0])+' var2:'+str(lvar[1])+' var3: '+str(lvar[2])+' var4: '+str(lvar[3])+' var5: '+str(lvar[4]))
                    
                    avg=round((((lvar[0]+lvar[1]+lvar[2]+lvar[2])/4)+lvar[3]+lvar[4])/3,1)
                    logger.info('Sommerauswertung: '+str(avg))
                    
                    sh.GLOBAL.Sommer.digits([str(lvar[0]),str(lvar[1]),str(lvar[2]),str(lvar[3]),str(lvar[4])])
                    
                    if avg>14:
                        sh.GLOBAL.Sommer(1)
                    else:
                        sh.GLOBAL.Sommer(0)
                    und der Aufruf in der logik.yaml:

                    Code:
                    sommer:
                        filename: sommer.py
                        crontab:
                            -   0 07 * *
                            -   0 14 * *
                            -   0 22 * *
                    Grüße, Marc

                    Kommentar


                      #25
                      Hallo Zusammen,

                      ich bin gerade dabei deine "Funktionierende Logik" bei mir einzubauen jedoch klappt das irgendwie nicht.


                      Im Log sind folgende Fehler:


                      Code:
                      2018-12-25  21:28:03 ERROR    logics.sommer    Logic: logics.sommer, File: /usr/local/smarthome/logics/sommerwinter.py, Line: 8, Method: <module>, Exception: 'Item' object has no attribute 'digits'
                      Traceback (most recent call last):
                        File "/usr/local/smarthome/lib/scheduler.py", line 493, in _task
                          exec(obj.bytecode)
                        File "/usr/local/smarthome/logics/sommerwinter.py", line 8, in <module>
                          if not sh.Sommerwinter.digits():
                      AttributeError: 'Item' object has no attribute 'digits'



                      Code:
                      
                      2018-12-25  21:34:39 ERROR    lib.item         Item Sommerwinter.digits: value None does not match type num.
                      2018-12-25  21:34:39 ERROR    lib.item         Item Sommerwinter.digits: problem creating: 
                      Traceback (most recent call last):
                        File "/usr/local/smarthome/lib/item.py", line 468, in __init__
                          child = Item(smarthome, self, child_path, value)
                        File "/usr/local/smarthome/lib/item.py", line 505, in __init__
                          self._value = self.cast(self._value)
                        File "/usr/local/smarthome/lib/item.py", line 1314, in _cast_num
                          raise ValueError
                      ValueError


                      Code:
                      
                      Sommerwinter:
                          type: bool
                          knx_dpt: 1
                          knx_send: 0/6/1
                          digits:
                              #werte Temperatur
                              type: num
                              value:
                              vicu_acl: rw
                      Zuletzt geändert von jonny7792; 25.12.2018, 21:36.
                      Gruss Oliver

                      Projektleiter Technische Gebäudeausrüstung

                      Kommentar


                        #26
                        Digits muss vom Typ List sein:
                        Code:
                        Sommer:
                                type: bool
                                knx_dpt: 1
                                visu_acl: rw
                                cache: 'yes'
                        
                                digits:
                                    #werte von 7.00|14.00|22|gestern|vorgestern
                                    type: list
                                    visu_acl: rw
                                    cache: 'yes'

                        Kommentar


                          #27
                          Zitat von schuma Beitrag anzeigen
                          Digits muss vom Typ List sein:


                          Danke nun gibt es keine Fehler mehr.

                          Jetzt heisst es abwarten bis morgen ob die Werte passen bzw ob die Umschaltung stattfindet
                          Gruss Oliver

                          Projektleiter Technische Gebäudeausrüstung

                          Kommentar

                          Lädt...
                          X