Ankündigung

Einklappen
Keine Ankündigung bisher.

knx-Plugin

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

    #16
    Hi,

    ich habe ein leicht anderes Pattern für Watchdogs, hier mal ein Beispiel:

    Master-Rechner:
    Code:
    Heartbeat:
        name: "Heartbeat"
        type: bool
        enforce_updates: yes
        cycle: 100 = 1
        knx_dpt: 1
        knx_status: 1/2/3
    Slave-Rechner:
    Code:
                    MasterHeartbeat: 
                        name: "Master-Heartbeat"
                        type: bool
                        enforce_updates: yes
                        knx_dpt: 1
                        knx_listen: 1/2/3
                        IsAlive: 
                            #Ist der Master noch am Leben?
                            name: "Master-Alive?"
                            type: bool
                            eval: 1 if int(value) < 2 else 0
                            eval_trigger: ..
                            autotimer: 301 = 2
    Bei mir gibt es dann ein Problem, wenn IsAlive = False wird. Ist nur als Anregung.

    Aber ich muss die Frage stellen: Glaubst Du, eine solch komplizierte Infrastruktur ist das Richtige für Dich, wenn Du bereits Probleme beim Watchdog hast? Ich bin mir nicht sicher, ob Du damit glücklich wirst...

    Gruß, Waldemar

    Kommentar


      #17
      Zitat von bmx Beitrag anzeigen
      Du kannst auf Deinem Slave-Rechner ein Item A (Ausfall) mit einem Cycle anlegen was in regelmäßigen Abständen getriggert wird.
      Bei Triggerung, prüfst Du mit eval nach, ob das letzte Update Deines Masteritems M schon älter ist als x sekunden (also sowas wie sh.shtime.now()-M.prev_update)
      Wenn ja, erhält das Item ein True => Alarm, ansonsten bleibts bei False (alles ok).
      Sonderfall könnte noch sein, das das Item von Init erst initialisiert worden ist, das müßte man extra betrachten.
      Das wäre eine Möglichkeit, danke. Ich habe nur das Problem, dass auch per Boolean kein Austausch stattfindet. Vielleicht habe ich auch irgendwas Grundlegendes übersehen. Ich habe in den Item-Definitionen auf jedem Rechner dieses Item angelegt

      Code:
      SmarthomeNG:
          Primaergeraet:
              Herzschlag:
                  type: bool
                  knx_dpt: 1
                  visu_acl: r
                  knx_send: 4/0/0
                  knx_init: 4/0/0
      Der Master setzt es per Logic auf True, was auch funktioniert, ich kontrolliere es über das Backend des Masters. Aber im Slave will dieser Wert einfach nicht ankommen, da kontrolliere ich es ebenfalls im Backend. Ich habe schon mit den Flags alle möglichen Kombinationen versucht, also im Master knx_status, knx_reply und im Slave nur knx_listen und knx_init. Aber es bleibt im Slave einfach immer false. Ich habe das Item im Slave auch schon anders benannt, weil ich gedacht hatte, vielleicht spielt der identische Name eine Rolle bei dem Fehler. Hat auch nichts verändert. Dann habe ich auch im Slave das knx-Plugin auf schreibend gesetzt (readonly = true auskommentiert), aber auch daran lag es nicht.
      Hat noch jemand einen Tipp, was ich falsch gemacht habe? Oder kann mir jemand eine bei sich funktionierende Konfiguration der Items posten?

      Kommentar


        #18
        Hi,

        hast Du im ETS-Gruppenmonitor geschaut, ob der Wert überhaupt gesendet wird (nur dann kann er auch empfangen werden)?
        Ansonsten würde ich auf
        Code:
        enforce_updates: yes
        tippen. Und zwar beim Sender.

        Gruß, Waldemar

        Kommentar


          #19
          Im Gruppenmonitor kommt er an. Er wird mit dieser Konfiguration
          Code:
          SmarthomeNG:
              Primaergeraet:
                  Herzschlag:
                      #wird als Zeit gespeichert
                      # type: foo
                      # knx_dpt: 10
                      # visu_acl: r
                      # knx_send: 4/0/0
                      # knx_listen: 4/0/0
                      # knx_reply: 4/0/0
                      # knx_cache: 4/0/0
                      type: bool
                      knx_dpt: 1
                      visu_acl: r
                      knx_send: 4/0/0
                      knx_reply: 4/0/0
                      knx_status: 4/0/0
                      knx_listen: 4/0/0
                      enforce_updates: 'yes'
          zweimal direkt hintereinander auf die 4/0/0 geschrieben.
          Der Slave hat diese Konfiguration

          Code:
          SmarthomeNG:
              Primaergeraet:
                  Test:
                      #wird als Zeit gespeichert
                      # type: foo
                      # knx_dpt: 10
                      # visu_acl: r
                      # knx_send: 4/0/0
                      # knx_listen: 4/0/0
                      # knx_reply: 4/0/0
                      # knx_cache: 4/0/0
                      type: bool
                      knx_dpt: 1
                      visu_acl: r
                      #knx_read: 4/0/0
                      knx_init: 4/0/0
                      knx_listen: 4/0/0
                      #knx_status: 4/0/0
          Der Wert kommt aber nicht an. Auch das enforce_update hat nichts gebracht. Es ist zum Mäusemelken!

          Kommentar


            #20
            kurze Rückmeldung: Es lag an der KNX-Schnittstelle (Weinzierl 730), dort war offenbar nur eine Verbindung gleichzeitig eingestellt, obwohl ich das mal auf mehrere Verbindungen eingerichtet hatte. Jetzt läuft es.

            Danke an alle, die sich Gedanken um meine Problemlösung gemacht haben!

            Grüße

            Kommentar

            Lädt...
            X