Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik anlegen.

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

    #31
    Hallo,

    testing ist aktualisiert.

    Bis bald

    Marcus

    Kommentar


      #32
      Hi,

      folgenden code habe ich für das DWD Plugin als logic komponente.

      ich habe ein Item heute.wetter und morgen.wetter wo die Vorhersagen landen.

      Bis jetzt hat folgender code funktioniert. (Bei mir sah er bisher eher so aus https://knx-user-forum.de/forum/supp...876#post951876) Ich vermute mal es hat irgentiwe mit den () zu tun die man bisher gebraucht hatte.

      Die beiden Variablen heute und morgen werden wohl jetzt auf einmal mit dem Items heute und morgen verwechselt. Weil wenn die Variablen ausgebe kommt statt dem datum heute und morgen zurück. Muss ich meine Lokalen Variablen in scripten umbennennen wenn ich items anlege die zufällig gleich heisen?

      Nachtrag:
      wenn ich meine lokalen Variablen umbennene z.B. heute in heute2 und morgen in morgen2 läuft das plugin wieder dann steht da auch wieder das datum drinn.

      Viele Grüsse
      Jürgen


      Code:
      logger = logging.getLogger('')
      
      heute = cd.now().date()
      morgen = heute + datetime.timedelta(days=1)
      
      current = cd.plugins.dwd.current()
      logger.debug(current)
      #2017-01-11 21:28:37 DEBUG    dwd_logic    {'STATION': 'Mannheim', 'HÖHE': '96', 'Luftdruck': '1010.7', 'Temperatur': '5.3',
      #'Relative Luftfeuchte': '89', 'Niederschlag': '0.0', 'Windrichtung': 'SW', 'Windgeschwindigkeit': '9', 'Windspitzen': '25', 'Wetter+Wolken': None, 'Böen': None}
      
      forecast = cd.plugins.dwd.forecast()
      logger.debug(heute)
      logger.debug(morgen)
      logger.debug(forecast)
      cd.plugins.dwd.ftp_quit()
      
      # Current
      if "Temperatur" in current:
          wetter.temperatur(current["Temperatur"])
      if "Niederschlag" in current:
          wetter.niederschlag(current["Niederschlag"])
      if "Luftdruck" in current:
          wetter.luftdruck(current["Luftdruck"])
      if "Windgeschwindigkeit" in current:
          if current["Windgeschwindigkeit"] is not None:
              wetter.windgeschwindigkeit(current["Windgeschwindigkeit"])
          else:
              wetter.windgeschwindigkeit(0)
      if "STATION" in current:
          wetter.station(current["STATION"])
      if "Relative Luftfeuchte" in current:
          wetter.LuftFeuchteRel(int(current["Relative Luftfeuchte"]))
      if "Windrichtung" in current:
          wetter.windrichtung(current["Windrichtung"])
      if "Wetter+Wolken" in current:
          wetter.wetter(current["Wetter+Wolken"])
      if "Böen" in current:
          if current["Böen"] is None:
              wetter.boeen('keine')
          else:
              wetter.boeen(current["Böen"])
      
      if heute in forecast:
          heute.wetter(forecast[heute])
          logger.debug(heute.wetter)
      if morgen in forecast:
          morgen.wetter(forecast[morgen])

      Mein Log
      Code:
      2017-03-07 23:28:58 DEBUG    Core         Triggering dwd_logic - by=GUI, caller=GUI, socket=192.168.102.80:54479
      2017-03-07 23:28:59 DEBUG    dwd_logic    fetching: gds/specials/observations/tables/germany/SXDL99_DWAV_20170307_2214_U_HTML
      2017-03-07 23:28:59 DEBUG    DLMS         dlms: reading took: 5.55s
      2017-03-07 23:28:59 DEBUG    DLMS         Item Smartmeter.LastReadingTime = 232842 Trigger by=Plugin, caller=DLMS, OBIS=0.9.1
      2017-03-07 23:28:59 DEBUG    DLMS         Item Smartmeter.ActPowerIn = 0.367 Trigger by=Plugin, caller=DLMS, OBIS=1.7.0
      2017-03-07 23:28:59 DEBUG    DLMS         Triggering Heizung.Bezug_exclusive_WP-code - by=Item, caller=DLMS, OBIS=1.7.0, path=Smartmeter.ActPowerIn, node=Smartmeter.ActPowerIn
      2017-03-07 23:28:59 DEBUG    DLMS         Item Smartmeter.EnergyIn = 8209.71 Trigger by=Plugin, caller=DLMS, OBIS=1.8.0
      2017-03-07 23:28:59 DEBUG    Heizung.Bezug_exclusive_WP-code Item Heizung.Bezug_exclusive_WP = 0.367 Trigger by=Item, caller=DLMS, OBIS=1.7.0, path=Smartmeter.ActPowerIn, node=Smartmeter.ActPowerIn
      2017-03-07 23:28:59 DEBUG    dwd_logic    {'STATION': 'Mannheim', 'HÖHE': '96', 'Luftdruck': '1021.5', 'Temperatur': '4.3', 'Relative Luftfeuchte': '100', 'Niederschlag': '0.0', 'Windrichtung': 'SO', 'Windgeschwindigkeit': '5', 'Windspitzen': '8', 'Wetter+Wolken': None, 'Böen': None}
      2017-03-07 23:29:00 DEBUG    location.time Triggering location.time-code - by=Scheduler, caller=Timer, timer={'time': '*:*', 'value': 'timer/cycle', 'wday': '*'}
      2017-03-07 23:29:00 DEBUG    location.time-code Item location.time = 2017-03-07 23:29:00+01:00 Trigger by=Scheduler, caller=Timer, timer={'time': '*:*', 'value': 'timer/cycle', 'wday': '*'}
      2017-03-07 23:29:00 DEBUG    EM300:plugins.emhaus Item plugins.emhaus.Bezug = 366.6 Trigger caller=EM300LR, by=Plugin, node=plugins.emhaus, path=plugins.emhaus
      2017-03-07 23:29:00 DEBUG    Scheduler    location.time next time: 2017-03-07 23:30:00+01:00
      2017-03-07 23:29:00 DEBUG    Scheduler    EM300:plugins.emhaus next time: 2017-03-07 23:29:10+01:00
      2017-03-07 23:29:04 DEBUG    Core         Triggering aussen.wetter.windgeschwindigkeit-code - pa=1.1.41, ga=7/0/5, caller=KNX, by=Plugin, node=plugins.knx, path=plugins.knx
      2017-03-07 23:29:04 DEBUG    aussen.wetter.windgeschwindigkeit-code Item aussen.wetter.windgeschwindigkeit = 3.9600000000000004 Trigger pa=1.1.41, ga=7/0/5, caller=KNX, by=Plugin, node=plugins.knx, path=plugins.knx
      2017-03-07 23:29:05 DEBUG    dwd_logic    heute
      2017-03-07 23:29:05 DEBUG    dwd_logic    morgen
      2017-03-07 23:29:05 DEBUG    dwd_logic    {datetime.date(2017, 3, 7): [['', '', ''], ['', '', ''], ['10', 'Regenschauer', ''], ['4', 'bewölkt', '']], datetime.date(2017, 3, 8): [['2', 'bewölkt', ''], ['9', 'leichter Regen', '']], datetime.date(2017, 3, 9): [['8', 'leichter Regen', ''], ['13', 'leichter Regen', '']], datetime.date(2017, 3, 10): [['4', 'bewölkt', ''], ['15', 'bewölkt', '']]}
      so sah mein Original aus for dem pasten und save im codeblock

      Code:
      logger = logging.getLogger('')
      
      heute = cd.now().date()
      morgen = heute + datetime.timedelta(days=1)
      
      current = cd.plugins.dwd.current()
      logger.debug(current)
      #2017-01-11 21:28:37 DEBUG    dwd_logic    {'STATION': 'Mannheim', 'HÖHE': '96', 'Luftdruck': '1010.7', 'Temperatur': '5.3', 
      #'Relative Luftfeuchte': '89', 'Niederschlag': '0.0', 'Windrichtung': 'SW', 'Windgeschwindigkeit': '9', 'Windspitzen': '25', 'Wetter+Wolken': None, 'Böen': None}
      
      forecast = cd.plugins.dwd.forecast()
      cd.plugins.dwd.ftp_quit()
      
      # Current
      if "Temperatur" in current:
          cd.wetter.temperatur(current["Temperatur"])
      if "Niederschlag" in current:
          cd.wetter.niederschlag(current["Niederschlag"])
      if "Luftdruck" in current:
          cd.wetter.luftdruck(current["Luftdruck"])
      if "Windgeschwindigkeit" in current:
          if current["Windgeschwindigkeit"] is not None:
              cd.wetter.windgeschwindigkeit(current["Windgeschwindigkeit"])
          else:
              cd.wetter.windgeschwindigkeit(0)
      if "STATION" in current:
          cd.wetter.station(current["STATION"])
      if "Relative Luftfeuchte" in current:
          cd.wetter.LuftFeuchteRel(int(current["Relative Luftfeuchte"]))
      if "Windrichtung" in current:
          cd.wetter.windrichtung(current["Windrichtung"])
      if "Wetter+Wolken" in current:
          cd.wetter.wetter(current["Wetter+Wolken"])
      if "Böen" in current:
          if current["Böen"] is None:
              cd.wetter.boeen('keine')
          else:
              cd.wetter.boeen(current["Böen"])
      
      if heute in forecast:
          cd.heute.wetter(forecast[heute])
      if morgen in forecast:
          cd.morgen.wetter(forecast[morgen])
      Zuletzt geändert von heckmannju; 08.03.2017, 10:10.

      Kommentar


        #33
        Hallo Jürgen,

        danke für das Feedback.

        Mir ist das Problem bewusst, ich muss mir noch Gedanken zu dem Umgang damit machen.

        Bis bald

        Marcus

        Kommentar


          #34
          Hi Marcus,
          muss man um ein "Dediziertes Log" für eine Logick zu bekommen irgentwas besonders machen ? Aausser den Hacken setzen natürlioch. Ich habe das irgentwie nicht hinbekommen.

          VG
          Jürgen

          Kommentar


            #35
            Hallo Jürgen,

            Code:
            logger.info('Hello World')
            loggt in das dedizierte Logfile, wenn es aktiviert ist.

            In der Logik - oben - erzeugst Du ein eigenes logger Objekt. Das war und ist nicht nötig.
            Und das Objekt loggt natürlich nicht in das File.

            Bis bald

            Marcus

            Kommentar


              #36
              Hi,

              Logiken können jetzt in Ordner liegen. Wäre da es nicht logisch wenn man auch beim anlegen einer neuen Logick gleich logic.neuelogic Schreiben darf, so das diese dann auch gleich in dem neuen Ordner landet?

              Viele Grüsse
              Jürgen

              Kommentar

              Lädt...
              X