Ankündigung

Einklappen
Keine Ankündigung bisher.

Homeserver: Kommunikation und erste Gehversuche

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

    #16
    Das findest Du unter Weitere Bausteine / Flankendetektor.
    Gruß, Rainer

    Kommentar


      #17
      ... oder den Binärauslöser
      Gruss aus Radevormwald
      Michel

      Kommentar


        #18
        Der Flankendetektor hat genau das gemacht, was ich wollte. Der Binärauslöser löste auch dann aus, wenn ein Telegramm eintraf, das den Wert nicht änderte.

        Als alter C-Hacker arbeite ich viel mit Bits. Nun will ich im HS einen kumulierten Status über Bits in einem 8-Bit- oder gar 16-Bit-Wert verwalten, stelle aber ergriffen fest, dass das mehr als beschwerlich ist. Habe ich Bit-Funktionen (setzen einzelner Bits, löschen, invertieren) übersehen, oder hat jemand dafür schon mal den einen oder anderen Baustein erstellt?

        "Verbindung negieren" macht nicht das, was ich auf den ersten Blick vermutet hätte. Sie negiert (aka invertiert) den Wert nicht, der anliegt, sondern feuert offensichtlich, wenn die Kette vorher nicht triggern würde. Ist das so richtig?
        openHAB 4.2

        Kommentar


          #19
          Es gibt Bausteine 8bit->1byte und umgekehrt, damit müsste sich was machen lassen.

          "Verbindung negieren" macht genau das, was ihr Name aussagt: Sie invertiert den einkommenden Wert. Aus einer 0 wird eine 1, aus einer 1 eine 0. Was der Baustein dann damit macht, ist seine Sache

          Immer dran denken: EIB läuft _eventgetriggert_ ab!
          Gruß Matthias
          EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
          - PN nur für PERSÖNLICHES!

          Kommentar


            #20
            Dass EIB Event-gesteuert ist, ist mir soweit klar. Dennoch hat das "Verbindung negieren" nicht das gemacht, was du beschrieben hast, sondern triggerte für den Fall, dass die vorhergehende Kette - vorsichtig formuliert - eigentlich nicht hätte triggern dürfen, was letztlich bei der von mir implementierten Logik zum Toggeln und damit zu Aktorstrapazen führte.

            Wenn "Negieren" wirklich eine logische Operation ist, müsste sie aus 0 eine 1, aus einem Wert <>0 eine 0 machen, richtig? Oder kann man "negieren" nur auf 0/1-Werte anwählen? Wie im Feature-Thread öfters erwähnt fehlt eine Logiksimulator/Debugger, mit dem man das leicht durchspielen könnte.

            Die Byte-Bit-Bausteine sind natürlich möglich, aber alles andere als elegant, wenn man überlegt, dass ich für "a|=0x3" (um die Bits 0 und 1 zu setzen) 2 Bausteine benötige, insbesondere dann, wenn man mit Variablen (0x03) arbeiten könnte, anstelle Logik fest zu verdrahten. Das macht eine Logikseite schnell sehr unübersichtlich.
            openHAB 4.2

            Kommentar


              #21
              Noch eine Frage: Irnkwie komme ich mit dem Binärauslöser nicht klar.

              Eine HS-interne Statusvariable (1 Bit) soll durch zwei Gruppenadressen (1 Bit) geändert werden. Die Statusvariable speichert dazu jeweils den letzten empfangenen Wert.
              Da ich eine Gruppenadresse in der Eingangsbox nicht direkt mit der Gruppenadresse in der Ausgangsbox verbinden kann - warum eigentlich nicht? -, schalte ich einen Binärauslöser dazwischen. Beide Eingangsgruppenadressen lege ich auf den Eingang E1 des Binärauslösers, beide Ausgänge A1 und A2 verbinde ich mit der einen Statusvariable in der Ausgangsbox.
              Trifft nun eine Gruppenadresse mit dem Wert 1 ein, fängt das System an, fleißig zwischen 0 und 1 zu toggeln.

              Lege ich die beiden Ausgänge allerdings auf 2 unterschiedliche Befehle (setze auf Konstante 0 bzw. 1), toggelt das System nicht.

              Wieso toggelt das System im ersten Fall? Und wie übernimmt man einfach Werte in Statusvariablen, ohne immer wieder Befehle hinzufügen zu müssen?
              openHAB 4.2

              Kommentar


                #22
                Screenshot der Logik bitte!
                Gruß Matthias
                EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                - PN nur für PERSÖNLICHES!

                Kommentar


                  #23
                  Hängt an.

                  Diese Lösung toggelt beim oberen Binärauslöser und setzt bei den anderen drei den Wert der Variable zuerst auf 1, dann auf 0, wenn nur eine 1 als Status eintrifft.
                  Angehängte Dateien
                  openHAB 4.2

                  Kommentar


                    #24
                    Werden die Stati nur da verwendet zur Anzeige oder finden die sich auch noch in anderer Logik wieder?

                    Statt der Binaus kannst du ein UND nehmen und nur einen Eingang beschalten, dann wird das sauberer. Oder eine offene Sperre. Es gibt auch einen Treiber-Baustein, der nur "durchreicht".
                    Gruß Matthias
                    EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                    - PN nur für PERSÖNLICHES!

                    Kommentar


                      #25
                      Diese Status dienen nur der späteren Anzeige, und dazu, beim Wechsel von anwesend (1) auf abwesend (0) Lichter auszuschalten. Das ist aber zur Zeit noch abgeklemmt.

                      Das mit dem Und verstehe ich nicht, denn im ersten Fall soll der letzte der beiden Status-Werte gespeichert werden. Daher kann ich die beiden mE nicht ver'und'en.

                      Welches ist denn der Treiberbaustein?

                      Die Zuweisung, einen Logikbausteinausgang direkt mit der Ausgangsadresse zu verknüpfen, ist aber prinzipiell OK, oder?
                      openHAB 4.2

                      Kommentar


                        #26
                        Denk' nochmals über "eventgesteuert" nach, verstanden hast du es noch nicht ganz.

                        Zwei verschiedene Eingänge am BinAus bedeuten: letztes Telegramm zählt!!

                        Essen EIN -> Ausgang EIN
                        Wohnen EIN - Ausgang EIN
                        Essen AUS - Ausgang AUS, AUCH WENN Wohnen noch ein ist

                        Da gehört, damit das logisch sauber ist, ein ODER hin.

                        Der Treiber

                        http://www.eib-kroner.de/homeserver/...l#19231_objekt
                        Gruß Matthias
                        EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                        - PN nur für PERSÖNLICHES!

                        Kommentar


                          #27
                          Zitat von MatthiasS Beitrag anzeigen
                          Denk' nochmals über "eventgesteuert" nach, verstanden hast du es noch nicht ganz.
                          Doch, ich denke schon. Siehe unten.

                          Zwei verschiedene Eingänge am BinAus bedeuten: letztes Telegramm zählt!!

                          Essen EIN -> Ausgang EIN
                          Wohnen EIN - Ausgang EIN
                          Essen AUS - Ausgang AUS, AUCH WENN Wohnen noch ein ist
                          Genau das wollte ich ja haben. Eigentlich kann es nicht passieren, da ich eine Zentraladresse verwende, um zwei Aktorkanäle für Wohn- und Esszimmer gleichzeitig zu schalten. Beide melden aber eigenständige Statusadressen zurück, falls ich doch mal die beiden trennen will. Und dann will ich nicht alle wieder anpacken müssen.

                          Also soll der letzte gewinnen. Aber genau das tut meine o.g. BinAus-Lösung nicht, sie setzt auf 1, dann unerwartet auf 0, obwohl ausschließlich 1er ankommen!

                          Da gehört, damit das logisch sauber ist, ein ODER hin.
                          Eben nicht, weil der letzte gewinnen soll, nicht eine vorhandene 1.

                          Mit offener Sperre oder dem Treiber geht es prinzipiell. Aber...

                          Der Status wird nach HS-Start nicht gepflegt.

                          Die Status-Variablen in der Eingangsbox sind mit "Beim Starten abfragen" markiert. Das tut der HS auch, und er bekommt auch den korrekten Status zurück. Allerdings triggern diese Antworttelegramme die Logik nicht, sondern nur die "eigentlichen" Statustelegramme, die als Konsequenz auf das Schalten geschickt werden. Siehe hierzu Uhrzeiten in den angehängten Grafiken.

                          Was ist das nun schon wieder?
                          Angehängte Dateien
                          openHAB 4.2

                          Kommentar


                            #28
                            Hilfestellung:

                            Als erstes, was steht genau am Ausgang (Screenshot)

                            Zweitens, bei diesem internen HS-Objekt über "Verweise" prüfen, ob das noch anderweitig verwendet wird.
                            Gruß Matthias
                            EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                            - PN nur für PERSÖNLICHES!

                            Kommentar


                              #29
                              Ich kann Dein Problem nicht ganz verstehen. Du hast also 2 Adressen, die Du überwachen willst, aber auch dezentral und zentral schalten.

                              Du kannst doch die Statusmeldungen aus Deinem Screenshot
                              (Steckdose Wohnzimmer 1 und Steckdose Wohnzimmer 2 ) direkt in eine Oder-Verknüpfung laufen lassen. Wenn einer der beiden AN ist, dann ist auch Deine "Belegtanzeige" an, das ist doch logisch vollkommen in Ordnung. Der Status answesend wird nach Deiner Logik ja zu True wenn ein zugeordnetes Gerät an ist. Wird einer abgeschaltet, dann bleibts solange an, bis der letzte aus ist.

                              Eventgesteuert heißt eben soviel, wie daß das "1" - Telegramm durchläuft, mitbekommen wird von den darauf angesetzten Geräten und dann im "Nirwana" verpufft.

                              Du kannst Matthias das ruhig glauben.
                              never fummel a running system...

                              Kommentar


                                #30
                                Anbei der Screenshot der aktuellen Logik incl. Pflege eines kumulierten Hausstatus.

                                Des weiteren 2 Eibmon-Screenshots über die Startphase des HS sowie die Aktion, wenn die Statusvariable erneut durch den Aktor gesendet wird. Im letzteren Screenshot sieht man, dass die Logik nun funktioniert (dafür erst mal Danke für den Tipp mit dem Treiberobjekt, BinAus war nur ein Notnagel), es stellt sich für mich nur die Frage, warum die Logik nach dem Start des HS nicht abgefeuert wird, obwohl der Aktor korrekt mit "ist an" antwortet.

                                BTW: Es spielt keine Rolle, ob ich bei den Treiberobjekten den Standard- oder sbc-Ausgang nutze.
                                Angehängte Dateien
                                openHAB 4.2

                                Kommentar

                                Lädt...
                                X