Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - eval und eval_trigger

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

    - √ - eval und eval_trigger

    Hi

    ich habe ein Problem mit eval und eval_trigger

    Ausgangspunkt:

    ich muss aus den Werten von 3 items einen 4 berechnen

    Code:
    [WP]
       [[Z_WMZ_H_1_4]]
            name = Waermemengenzaehler 1-4 Heizen
            type = num
            visu = yes
            value = 0
            Dimplex_des = 'int'
            Dimplex_adr = 95 
            
        [[Z_WMZ_H_5_9]]
            name = Waermemengenzaehler 5-9 Heizen
            type = num
            visu = yes
            value = 0
            Dimplex_des = 'int'
            Dimplex_adr = 96 
            
        [[Z_WMZ_H_9_12]]
            name = Waermemengenzaehler 10 -12 Heizen
            type = num
            visu = yes
            value = 0
            Dimplex_des = 'int'
            Dimplex_adr = 97 
            
        [[Z_WMZ_H]]
            name = Waermemengenzaehler Heizen
            type = num
            visu = yes
            eval = "sh.WP.Z_WMZ_H_1_4() + sh.WP.Z_WMZ_H_5_9() * 10000 + sh.WP.Z_WMZ_H_9_12() * 100000000"
            eval_trigger = "WP.Z_WMZ_H_1_4 ,WP.Z_WMZ_H_5_9 ,WP.Z_WMZ_H_9_12"
            sqlite = yes
    soweit so gut

    laut log werden die Daten auch registriert

    Code:
    2013-10-06 15:41:40,409 DEBUG    Main         Dimplex register : Waermemengenzaehler 1-4 Heizen connected to value of des int , adr 95  -- __init__.py:parse_item:86
    2013-10-06 15:41:40,421 DEBUG    Main         Dimplex register : Waermemengenzaehler 5-9 Heizen connected to value of des int , adr 96  -- __init__.py:parse_item:86
    2013-10-06 15:41:40,433 DEBUG    Main         Dimplex register : Waermemengenzaehler 10 -12 Heizen connected to value of des int , adr 97  -- __init__.py:parse_item:86
    2013-10-06 15:41:40,461 DEBUG    Main         Triggering WP.Z_WMZ_H - by: Init source: None dest: None value: None -- scheduler.py:trigger:123
    2013-10-06 15:41:40,470 INFO     Main         Start Plugins -- plugin.py:start:65
    2013-10-06 15:41:40,475 DEBUG    WP.Z_WMZ_H   WP.Z_WMZ_H = 0 via Eval None -- item.py:_update:251
    beim einlesen kommt dann auch die Stelle wo die items mit Daten gefüllt werden.

    Code:
    2013-10-06 15:41:45,451 DEBUG    dimplex      WP.Z_WMZ_H_1_4 = 4064 via Dimplex refresh -- item.py:_update:251
    2013-10-06 15:41:45,465 DEBUG    dimplex      WP.Z_WMZ_H_5_9 = 4 via Dimplex refresh -- item.py:_update:251
    WP.Z_WMZ_H_9_12 erscheind nicht da dieser Wert immer noch Null ist.

    es kommt aber kein eval_trigger auf Z_WMZ_H

    Das ist mein Problem, hab ich da was übersehen?

    Grüße Stromie

    #2
    Anführungsstriche bei eval_trigger weglassen?

    Kommentar


      #3
      Danke Robert

      funktioniert

      Grüße Stromie

      Kommentar


        #4
        Deshalb habe ich mal ein Temp min/max Item in den Wiki Howtos hinterlegt. Böse Falle. Eine Zeile mit Anführungsstrichen, eine Zeile ohne.
        Derzeit zwischen Kistenauspacken und Garten anlegen.
        Baublog im Profil.

        Kommentar


          #5
          Ja, das ist unschön. Lässt sich das ändern/robuster machen?

          Gesendet von meinem LT26i mit Tapatalk 4

          Kommentar


            #6
            Zitat von henfri Beitrag anzeigen
            Ja, das ist unschön. Lässt sich das ändern/robuster machen?
            Klar, ein foo.strip('\"') sollte das erschlagen...

            Kommentar


              #7
              Super.
              @Martin:
              Was sagst du?

              von unterwegs gesendet

              Kommentar


                #8
                Hallo Hendrik,

                wen meinst Du mit Martin? Apollo wird hier nicht helfen können.

                Ich denke Robert hat einen Scherz gemacht. Das funktioniert nicht so einfach. Klar kann man Anführungszeichen so entfernen, das ist aber nicht das Problem.

                Bisher hatte ich zum parsen der Config-Files immer eine 3rd-Party Bibliothek verwendet die recht starr bei der Behandlung von ',' war.
                Vor kurzem habe ich aber auf einen eigenen Parser umgestellt.
                Ich denke darüber nach die Listen (bisher mit ',' getrennt) in Zukunft über '|' zu trennen. Dann muss man Strings, die ein Komma enthalten, nicht über "" einfassen.

                Je länger ich darüber nachdenke, desto sympatischer wird mir der Weg. Ich schreib mal ein kleines Shell-Script zum konvertieren der Konfig-Files.

                Bis bald

                Marcus

                Kommentar


                  #9
                  Zitat von mknx Beitrag anzeigen
                  Ich denke Robert hat einen Scherz gemacht. Das funktioniert nicht so einfach.
                  Ne, ich muss bekennen: Leider nicht. Dachte die Configs würden von dir zeilenweise eingelesen und verarbeitet. Da hätte man evtl. ja irgendwann erkennen können, ob vorne und hinten ein " steht und es entfernen können. Sorry.

                  Kommentar


                    #10
                    Zitat von mknx Beitrag anzeigen
                    wen meinst Du mit Martin? Apollo wird hier nicht helfen können.
                    Beide mit Smart... beide mit M und das kombiniert mit meiner Namensschwäche. Das ist zu viel für mich, sorry. Sollte nicht passieren.

                    Ich denke darüber nach die Listen (bisher mit ',' getrennt) in Zukunft über '|' zu trennen. Dann muss man Strings, die ein Komma enthalten, nicht über "" einfassen.
                    Ja, ich denke das wäre eine bessere lösung. Ich muss mal meine Config-Dateien durchgehen, gehe aber davon aus, dasss ich irgendwo genau diesen Fehler drin habe.

                    Zitat von Robert Beitrag anzeigen
                    Ne, ich muss bekennen: Leider nicht.
                    entfernen können. Sorry.
                    Puh, da bin ich ja beruhigt und meine (zweite, nach dem Namens-Ding) Schamesröte kann sich wieder verkriechen.

                    Gruß,
                    Hendrik

                    Kommentar


                      #11
                      Hallo Robert,

                      Zitat von Robert Beitrag anzeigen
                      Sorry.
                      ist kein Problem. Ja die Config wird Zeilenweise ausgelesen, ich möchte aber eine Aufbereitung in Abhängigkeit von dem Keyword unter allen Mitteln vermeiden. Das ist blöd.

                      Den anderen skizzierten Weg finde ich sauberer.

                      Bis bald

                      Marcus

                      Kommentar


                        #12
                        Zitat von mknx Beitrag anzeigen
                        Den anderen skizzierten Weg finde ich sauberer.
                        ist in develop implementiert.

                        Code:
                        # Das Config-Format hat sich leicht geändert. Statt ',' werden '|' für das Aufteilen von Attributen verwendet.
                        # Es gibt ein kleine Script das die Konvertierung übernimmt
                        # Unter items/NAME.conf.bak liegt die alte Config
                        # Bitte nur einmal ausführen
                        $ ./tools/conf2-1.0.sh
                        Bis bald

                        Marcus

                        Kommentar

                        Lädt...
                        X