Ankündigung

Einklappen
Keine Ankündigung bisher.

Homeserver: Kommunikation und erste Gehversuche

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

    #31
    Zitat von TRex Beitrag anzeigen
    Du kannst Matthias das ruhig glauben.
    Tue ich ja auch Das Oder hätte in diesem Fall auch funktioniert, gar keine Frage.
    Aber die Nachbildung eines Aktorstatus - der letzte gewinnt - im Treiberobjekt war das Mittel, das ich gesucht habe.
    openHAB 4.2

    Kommentar


      #32
      gerade im SBC liegt ja der Hund begraben. SBC heißt SEND BY Change, also wenn sich der Ausgang verändert... Das tut er ja bei einem Neustart des HS nicht, Du solltest also den Normalen Ausgang verwenden, dann gehts. Das EVENT fehtl ;-)
      never fummel a running system...

      Kommentar


        #33
        Das ist es leider nicht. Ich habe es gerade nochmal ausprobiert, um auf Nummer Sicher zu gehen: Es spielt keine Rolle, ob ich den normalen oder sbc-Ausgang nehme. Die Logik wird erst dann gefeuert, wenn der Wert 81 bzw. 80 auf den Bus geschrieben wird, nicht 41 bzw. 40.
        openHAB 4.2

        Kommentar


          #34
          Wird das KO beim Start abgefragt?
          never fummel a running system...

          Kommentar


            #35
            Zitat von TRex Beitrag anzeigen
            Wird das KO beim Start abgefragt?
            Yep. Im obigen Logging (Screenshot) sieht man auch, dass der Aktor antwortet. Aber eben mit dem Wert 41, und nicht wie beim Schalten mit 81.
            openHAB 4.2

            Kommentar


              #36
              Ein paar Anmerkungen hierzu:

              1. Ein Grund für das von Dir beobachtete Verhalten ist, dass der Objekt-Baustein bei Start nicht berechnet wird. Die Defaults werden verwendet.

              2. Zum Binärauslöser ist zu beachten, dass *immer* beide Ausgänge senden. Wenn die Ausgänge auf Befehle gehen ist alles ok - die werden ja nur bei '1' abgearbeitet. Liegen hier jedoch KOs an, werden beide beschrieben. Deine Ausgangsbeschaltung, beide Ausgänge des Binärauslösers auf das selbe KO zu legen, ist also quasi ein Ausgangskurzschluß.

              3. Der HS berechnet die Logiken bei Init. Da dies bei der Initialisierung 'auf einen Schlag' geschieht, sind die Eingänge der unteren Logik mit ihrem remanenten bzw. Init-Wert vorbelegt (und nicht mit den Ergebnissen der oberen Logikkette). Dies sähe anders aus, wenn Du eine einzige komplette Kette zusammensetzen würdest.
              Gruß, Rainer

              Kommentar


                #37
                Zitat von Taxus Beitrag anzeigen
                1. Ein Grund für das von Dir beobachtete Verhalten ist, dass der Objekt-Baustein bei Start nicht berechnet wird. Die Defaults werden verwendet.
                OK, verstanden. Aber wie bringe ich dann aber den HS dazu, mit Hilfe der abgefragten Werte die Statusvariablen zu initialisieren?

                2. Zum Binärauslöser ist zu beachten, dass *immer* beide Ausgänge senden. Wenn die Ausgänge auf Befehle gehen ist alles ok - die werden ja nur bei '1' abgearbeitet. Liegen hier jedoch KOs an, werden beide beschrieben. Deine Ausgangsbeschaltung, beide Ausgänge des Binärauslösers auf das selbe KO zu legen, ist also quasi ein Ausgangskurzschluß.
                Das erklärt einiges. Da der Wert aber durchgereicht wird, kann man ihn problemlos auf einem Ausgang an ein KO schicken, oder?

                3. Der HS berechnet die Logiken bei Init. Da dies bei der Initialisierung 'auf einen Schlag' geschieht, sind die Eingänge der unteren Logik mit ihrem remanenten bzw. Init-Wert vorbelegt (und nicht mit den Ergebnissen der oberen Logikkette). Dies sähe anders aus, wenn Du eine einzige komplette Kette zusammensetzen würdest.
                Eine komplette Kette ginge zwar, würde aber ein riesengroßes Diagramm ergeben, da das nur der Anfang ist. So soll etwa der Status einzelner Räume auch bei anderen Ereignissen auf "anwesend" gesetzt werden. Dazu wollte ich dann einfach die betreffende Statusvariable des Raumes ändern, und die angegebene Mimik - die auch noch größer wird - berechnet dann den kumulierten Hausstatus.

                Wenn ich das richtig verstehe, ist der dritte Punkt ähnlich dem ersten. Wie kann ich also erreichen, dass nach dem Init diese Bausteine erneut berechnet werden?
                openHAB 4.2

                Kommentar


                  #38
                  Zitat von Tokamak Beitrag anzeigen
                  [...] wie bringe ich dann aber den HS dazu, mit Hilfe der abgefragten Werte die Statusvariablen zu initialisieren?
                  Das generelle Startverhalten ist ja in der Onlinehilfe C:\Programme\GIRA\HS+FS\exp22\hlp\logikstart.html beschrieben. Stelle daher einfach sicher, dass die Logikkette auch vollständig durchlaufen wird, d. h. alle verwendeten Bausteine müssen während der Initialisierung auch berechnet werden (steht in der Doku zum Baustein, notfalls im Baustein selbst). Wenn Du das aus "Übersichtlichkeitsgründen" nicht in einem Rutsch sicherstellst, musst Du eben einen weiteren Durchlauf anstoßen, indem Du z. B. das Systemstartobjekt dazu verwendest, die Logik leicht zeitverzögert nochmals auszuführen. Ob das die Logik wohl übersichtlicher macht ...

                  Zitat von Tokamak Beitrag anzeigen
                  Da der Wert aber durchgereicht wird, kann man ihn problemlos auf einem Ausgang an ein KO schicken, oder?
                  Wenn Du am Eingang von 0 oder 1 ausgehst, ja; oder natürlich an einen anderen Baustein.

                  Für Eingänge ungleich 0 oder 1 ist es wichtig zu wissen, dass intern der Wahrheitswert "Eingang ungleich 0" ermittelt und einmal direkt, einmal negiert ausgegeben wird, das 'Durchreichen' also binär verstanden werden muss.

                  Anmerkung: ich verwende den Binärauslöser höchst selten, in meinem gesamten Projekt nur fünf mal. Aber das ist natürlich so individuell wie die Aufgabenstellungen.
                  Gruß, Rainer

                  Kommentar


                    #39
                    Zitat von Taxus Beitrag anzeigen
                    Das generelle Startverhalten ist ja in der Onlinehilfe C:\Programme\GIRA\HS+FS\exp22\hlp\logikstart.html beschrieben. Stelle daher einfach sicher, dass die Logikkette auch vollständig durchlaufen wird, d. h. alle verwendeten Bausteine müssen während der Initialisierung auch berechnet werden (steht in der Doku zum Baustein, notfalls im Baustein selbst). Wenn Du das aus "Übersichtlichkeitsgründen" nicht in einem Rutsch sicherstellst, musst Du eben einen weiteren Durchlauf anstoßen, indem Du z. B. das Systemstartobjekt dazu verwendest, die Logik leicht zeitverzögert nochmals auszuführen. Ob das die Logik wohl übersichtlicher macht ...
                    Danke für den Link. Das erklärt natürlich mein Problem. Gefunden hätte ich das nur, wenn ich gewusst hätte, dass das im Startverhalten des HS begründet liegt - und man die Datei überhaupt findet. Nur interessehalber: Direkt verlinkt ist diese HTML-Seite in der Online-Hilfe nicht, oder? Über die Suche kann man sie finden.

                    Gestern Abend, als ich dann nicht mehr weiter wusste, habe ich mir letztlich so geholfen, wie es die genannte Hilfeseite impliziert. Das Flag "Beim Starten abfragen" habe ich entfernt, da es eh nichts brachte, und dann nach Systemstart die Statusabfragen als Befehle selbst auf den Bus geschickt. Nach Systemstart ist die Logik initialisiert, und dann fluppte es sofort. Die Werte stimmen, und meiner Vorstellung von Übersichtlichkeit/Gruppierung ist genüge geleistet.

                    Nochmals danke für die Hilfe, auch an Michael.

                    Anmerkung: ich verwende den Binärauslöser höchst selten, in meinem gesamten Projekt nur fünf mal. Aber das ist natürlich so individuell wie die Aufgabenstellungen.
                    Wohl fühle ich mich mit dem Binärauslöser auch nicht, zumal ich immer den "Kurzschluss" erzeugte, weil ich in Ermangelung anderer Möglichkeiten beide Ausgänge auf ein KO gelegt habe.
                    Das Treiberobjekt hilft, auch die Sperre konnte ich gestern an anderer Stelle optimal verwenden. Wietere Treiberobjekte mit sbc-, neg- und neg-sbc-Ausgängen, das wäre noch was.
                    openHAB 4.2

                    Kommentar


                      #40
                      Zitat von Tokamak Beitrag anzeigen
                      Direkt verlinkt ist diese HTML-Seite in der Online-Hilfe nicht, oder?
                      Doch, sicher: Experte öffnen - F1 - Übersicht - Wissenswertes - Startverhalten der Logik.
                      Gruß, Rainer

                      Kommentar


                        #41
                        Zitat von Taxus Beitrag anzeigen
                        Doch, sicher: Experte öffnen - F1 - Übersicht - Wissenswertes - Startverhalten der Logik.
                        Danke. Ich hatte nur unter der Onlinehilfe zur Logik selbst geschaut.

                        Inzwischen glaube ich, dass der Binärauslöser nicht wie beschrieben funktioniert - oder ich dessen Beschreibung missinterpretiere. Der Eingangswert soll zwar transparent an den Ausgang gelegt werden, doch toggelt er dort, auch nur, wenn ein Ausgang genutzt wird, so dass er nicht zur direkten Zuweisung an ein ausgehendes KO genutzt werden sollte. Befehle zu triggern stellt hingegen kein Problem dar.
                        openHAB 4.2

                        Kommentar


                          #42
                          Zitat von Tokamak Beitrag anzeigen
                          Inzwischen glaube ich, dass der Binärauslöser nicht wie beschrieben funktioniert ...
                          Das Schöne an Logik - es ist keine Glaubensfrage . Der Baustein gibt dies aus:

                          5012|9001|0|""|"EN[1]<>0"|""|1|0|0|2

                          E1| Berechnung |A1 | A2
                          1 | "1 <> 0" = 1 | 1 | 0
                          0 | "0 <> 0" = 0 | 0 | 1
                          Gruß, Rainer

                          Kommentar


                            #43
                            *lach* Nein. Er löst schon binär aus, d.h. er unterscheidet zwischen <>0 und 0. Aber wenn man einen Ausgang direkt mit einem KO verbindet, erhält das KO nacheinander beide Werte, was nicht mit meinem Verständnis übereinstimmt, sicher aber mit der Art, wie die Logikbausteine interpretiert werden.

                            Auf jeden Fall habe ich das mal zum Anlass genommen, in die hsl-Dateien reinzuschauen. Gibt es eine Doku über Format und einsetzbare Funktionen? Dann kann man sich den einen oder andern Baustein selbst bauen.
                            openHAB 4.2

                            Kommentar


                              #44
                              Zitat von Tokamak Beitrag anzeigen
                              [...] Aber wenn man einen Ausgang direkt mit einem KO verbindet, erhält das KO nacheinander beide Werte, [...]
                              Du musst einen weiteren Auslöser in Deiner Logik haben, wenn das Ergebnis bei Dir toggelt. Der BinAus arbeitet eindeutig, die Zuweisung geschieht nur einmalig. Anbei ein Muster, vergleiche die Zeitstempel des EIBMON.
                              Angehängte Dateien
                              Gruß, Rainer

                              Kommentar


                                #45
                                Ich verstehe schon, was Tokamak meint. Aber der Baustein ist genauso konzipiert, wie er arbeitet:

                                Der Baustein gibt bei E<>0 an A1 eine 1 aus und an A2 das neative Ergebnis. Wenn ich da natürlich das gleiche Ojekt anhänge, geht das schief, ich habe nacheinander das postitive und das invertierte Ojekt am Ausgang.

                                Das ist so gewollt. Ich bin jetzt seit der ersten HS-Minute dabei, dass der Binaus so vergewaltigt wird, ist sogar mir neu :-)
                                Gruß Matthias
                                EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                                - PN nur für PERSÖNLICHES!

                                Kommentar

                                Lädt...
                                X