Ankündigung

Einklappen
Keine Ankündigung bisher.

[Onewire + MDT Heizungsaktor] zyklisches senden und Notbetrieb

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

    [Onewire + MDT Heizungsaktor] zyklisches senden und Notbetrieb

    Hallo,

    ich habe Onewire temparatursensoren per [ow] plugin an SmarthomeNG angebunden und per Gruppenadresse an den KNX Bus gelegt, hier als Beispiel:
    Code:
    [og]
        [[bad]]
            [[[heizung]]]
                [[[[ist]]]]
                    ow_addr = 28.C1BB00090000
                    ow_sensor = T
                    type = num
                    visu = yes
                    sqlite = yes
                    knx_dpt = 9
                    knx_send = 8/2/0
                    knx_reply = 8/2/0
    Sensor wird auch erkannt und liefert auch einen Wert:

    Code:
    > ls og.bad.heizung.ist
    Items:
    ======
    og.bad.heizung.ist = 22.3125
    und
    Code:
    pi@smarthome /usr/local/smarthome/items $ groupreadresponse ip:127.0.0.1 8/2/0
    Send request
    Read from 0.0.0
    Response from 0.0.0: 0C 5B
    (wie man von 0C 5B auf 22,3125 Grad kommt weiss ich nicht, HEX to DEC sagt hier 31,63)

    Leider gehen meine Aktoren sehr oft in den Notbetrieb. Lt Konfiguration geschieht das falls der Aktor für 30 Minuten keinen Temperaturwert erhält.

    Muss nun der Aktor zyklisch die GA abfragen oder muss ich SmarthomeNG konfigurieren den Wert zyklisch zu senden (ich denke der Glastaster+ sendet auch zyklisch)?
    Die SQLite Datenbank zeigt an das die Werte über den Onewire Bus verfügbar sind.

    Bin etwas ratlos
    Zuletzt geändert von bmx; 09.10.2017, 08:50.

    #2
    Wenn die Sensoren mehrfach den selben Wert senden, werden die Wiederholungen nicht auf den KNX Bus gesendet. Dafür musst Du

    Code:
    enforce_updates = true
    für die Items setzen.
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Vielen Dank,.

      habe die Änderung für die OneWire Items vorgenommen.
      Schaue mal ob dies die Ursache ist

      Kommentar


        #4
        Sieght gut aus.

        Vielen Dank!

        Kommentar


          #5
          Wie hast du es denn hinbekommen, dass der Wert "zyklisch" gesendet wird? Wo kann man das einstellen?
          Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

          Kommentar


            #6
            Ich bin am Wochenende über das selbe Problem (in anderer Ausprägung) gestolpert. Es sollte so funktionieren (ungetestet):
            Code:
            [cycletest]
                type = bool
                cycle = 10 = 1
                eval = sh.cycletest()
                enforce_updates = true
                value = False
                knx_dpt = 1
                knx_send = ...
            Anstatt der 10 muss die Zeit in Sekunden stehen, mit der zyklisch gesendet werden soll. Die 1 wird vom eval überschrieben, ist aber nötig, damit eval ausgeführt wird. Ob zyklisch gesendet wird bitte im ETS Busmonitor überprüfen, mir hat es in der Konsole da nichts angezeigt (hat mich einige Zeit gekostet, das rauszufinden).

            Gruß, Daniel
            Zuletzt geändert von dafra; 22.02.2017, 12:25.

            Kommentar


              #7
              Kleiner Nachtrag:

              am einfachsten ist es natürlich, wenn das Item mit dem Temperaturwert ohnehin zyklisch geschrieben wird, wie es z.B. bei 1Wire der Fall ist. Dann kann man sich das ganze cyle und eval sparen. Dann reicht es, wenn enforce_updates = true gesetzt ist. So meinte es auch Msinn.

              Gruß, Daniel

              Kommentar


                #8
                Und wie bekommt man das hin?! Stehe gerade aufm Schlauch
                Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                Kommentar


                  #9
                  Das macht das 1 Wire plugin für dich:
                  plugin.conf:
                  Code:
                  [ow]
                      class_name = OneWire
                      class_path = plugins.onewire
                  [COLOR=#FF0000]    cycle = 120[/COLOR]
                  Gruß, Daniel

                  Kommentar


                    #10
                    Zitat von dafra Beitrag anzeigen
                    Das macht das 1 Wire plugin für dich
                    Ah perfekt, danke.
                    Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                    Kommentar


                      #11
                      Was ist denn sh.cycletest?
                      Dieses ganze eval, trigger Zeug in smarthome.py ist irgendwie richtig unintuitiv

                      Kommentar


                        #12
                        Was ist denn sh.cycletest?
                        Das ist ein Item - genauer gesagt das Item cycletest, welches ja in der Konf angelegt wurde. Der Name des Items ist beliebig wählbar, es muss nur 2x der selbe Name da stehen. Im Beispiel greift man mit sh.cylcetest() greift man im Eval auf den aktuellen Wert des Items zu. Dadurch überschreibt man den Wert, der im cycle gesetzt wurde.

                        Bezüglich dem zyklischen ausgeben von Werten bin ich bei dir - das ist nicht sehr logisch, dass man erst einen Wert definieren MUSS, der anschließend wieder überschrieben werden soll. Ich habe diesbezüglich auch schon gefragt, ob man das künftig intuitiver gestalten kann.

                        Der Syntax im eval ist IMHO auch gewöhnungsbedürftig, insbesondere da man im eval_trigger mit <itemName> arbeitet, im eval dagegen mit sh.<itemName>(). Wenn man es aber mal verstanden hat, ist es eigentlich recht einfach.

                        Der Syntax im Eval ist wie folgt:
                        Code:
                        Wert 1 if Bedingung1 else Wert 2
                        in C/Java/PHP würde das so aussehen:
                        Code:
                        if (Bedingung1){
                           Wert1
                        }else{
                           Wert2
                        }
                        Gruß, Daniel

                        Kommentar


                          #13
                          Zitat von dafra Beitrag anzeigen
                          Das macht das 1 Wire plugin für dich:
                          plugin.conf:
                          Code:
                          [ow]
                              class_name = OneWire
                              class_path = plugins.onewire
                          [COLOR=#FF0000]    cycle = 120[/COLOR]
                          Gruß, Daniel
                          Ich habe das jetzt so eingestellt. Leider kommen die Temperaturen nicht aufm Bus an.

                          Hier meine temp.conf:

                          Code:
                          [temperatur]
                              [[ist]]
                                  [[[gangeg]]]
                                      ow_addr = 28.AB49F2040000
                                      ow_sensor = T
                                      type = num
                                      visu = yes
                                      sqlite = yes
                                      knx_send = 2/1/0
                                      knx_reply = 2/1/0
                                      enforce_updates = true
                                      dpt = 9
                                      visu_acl = rw
                          
                                  [[[duscheheizung]]]
                                      ow_addr = 28.9C37F2040000
                                      ow_sensor = T
                                      type = num
                                      visu = yes
                                      sqlite = yes
                                      knx_send = 2/1/11
                                      knx_reply = 2/1/11
                                      enforce_updates = true
                                      dpt = 9
                                      visu_acl = rw
                          
                                  [[[hwr]]]
                                      ow_addr = 28.F8FBF0040000F4
                                      ow_sensor = T
                                      type = num
                                      visu = yes
                                      sqlite = yes
                                      knx_send = 2/1/10
                                      knx_reply = 2/1/10
                                      enforce_updates = true
                                      dpt = 9
                                      visu_acl = rw
                          und ein Auszug aus meiner plugin.yaml:

                          Code:
                          # Onewire Plugin
                          ow:
                              class_name: OneWire
                              class_path: plugins.onewire
                              cycle: 120
                          In der Visu kommen die werte an:

                          2017-10-07 13_52_29-YOUR NAME [smartVISU].png

                          Aber leider kommen Sie auf dem Bus nicht an. KNXD läuft und funzt!

                          Jemand eine Idee.

                          Achja: Benutzen tue ich das aktuelle SmarthomeNG Image 2.01
                          Zuletzt geändert von bmx; 07.10.2017, 13:36.
                          Geniale Menschen sind selten ordentlich, ordentliche selten genial. (Albert Einstein)

                          Kommentar


                            #14
                            Wie stellst Du fest, das die Werte auf dem Bus nicht ankommen? Läßt Du die ETS über ein anderes Interface mitloggen?

                            Was sagt denn der Debuglog vom SmartHomeNG zum knx Thema?

                            Du benutzt eine plugin.yaml aber wirklich noch die alten conf-Dateien, oder? Nicht das Du jetzt zwar Deine conf immer schön änderst aber schon yaml liegen hast und diese dann auch verwendet werden ...
                            Zuletzt geändert von bmx; 07.10.2017, 13:37.

                            Kommentar


                              #15
                              Muss das nicht "knx_dpt" heißen, damit das Plugin damit was anfangen kann?

                              Code:
                              [temperatur]
                                  [[ist]]
                                      [[[hwr]]]
                                          ow_addr = 28.F8FBF0040000F4
                                          ow_sensor = T
                                          type = num
                                          visu = yes
                                          sqlite = yes
                                          knx_send = 2/1/10
                                          knx_reply = 2/1/10
                                          enforce_updates = true
                              [B]            [COLOR=#FF0000]dpt = 9 <-----------Hier mein ich[/COLOR][/B]
                                          visu_acl = rw
                              Zuletzt geändert von bmx; 07.10.2017, 21:33.

                              Kommentar

                              Lädt...
                              X