Ankündigung

Einklappen
Keine Ankündigung bisher.

Homeserver: Kommunikation und erste Gehversuche

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

  • MatthiasS
    antwortet
    Naja, gewollt insofern,

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

    als dass das Formel-Ergebnis auf Ausgang 1 und das invertierte Ergebnis auf Ausgang 2 soll.

    Nach meinen Beobachtungen würde ich mal behaupten, dass der negative Ausgang immer nach dem Hauptausgang gesetzt wird. Das mit dem Rücksetzen (mache ich oft per Telegrammverzögerung) ist eine coole Idee!

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    Zitat von MatthiasS Beitrag anzeigen
    [...] 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. [...]
    Hast Du eine Quelle für das 'gewollt', insbesondere interessiert mich die Frage, ob die Reihenfolge definiert ist? Reihenfolge der Ausgänge? Ich habe interessehalber mit einem anderen Baustein, der auch einen neg-Ausgang hat (9009) getestet - auch hier kann ich bei einem 'Ausgangskurzschluß' auf dasselbe KO das Toggeln beobachten. Dies würde einen wirklich kompakten rücksetzenden Trigger ermöglichen.

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    Zitat von MatthiasS Beitrag anzeigen
    Und zwecks Entwickler-Doku, eigenem Nummernbereich für Bausteine:

    http://www.dacom-homeautomation.de/p...id=delogikentw
    Jo, danke. Hatte ich gerade auch über das Wiki gefunden.

    BTW: Dein dortiger Link zeigt ins Nirwana

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    Und zwecks Entwickler-Doku, eigenem Nummernbereich für Bausteine:

    http://www.dacom-homeautomation.de/p...id=delogikentw

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    Zitat von dhe Beitrag anzeigen
    Einen einfachen Einstieg bietet dir das Wiki:
    https://knx-user-forum.de/mediawiki/...tein_erstellen

    Die Variablen sind ganz unten mit einem Link zu erreichen (welche Variable für was ist).
    Danke. Damit hat sich ein Teil meiner Frage erledigt.

    Und in logic.dat steht auch wunderbar dokumentiert, dass eine Änderung der Dauer in der Treppenhauslichtfunktion ignoriert werden soll...

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    Um das Thema Binärauslöser abzuschließen:

    Nach meinem(!) Verständnis wird laut Beschreibung dieses Bausteins immer nur ein Ausgang beschickt, nicht beide nacheinander:
    Zitat von Doku zu Binärauslöser
    Ist der Wert des Eingangstelegramms ungleich Null, erfolgt die Ausgabe an Ausgang 1.
    Ist der Wert des Eingangstelegramms gleich Null, erfolgt die Ausgabe an Ausgang 2.
    Daher habe ich das nicht als Problem gesehen. Sicher ist, der Baustein "works as coded", nach meiner Meinung aber nicht "works as documented".


    Aktuell bin ich mit einer Treppenhausfunktion beschäftigt, bei der ich aber mit dem passenden Baustein alleine nicht hinbekomme, dass während der Treppenhauslichtzeit das Dauerlicht angefordert wird. Eine Änderung auf 0 an E1 bewirkt nicht, dass A3 nicht auf 0 gesetzt wird. Lösen kann man das, indem man das nachher nochmal mit dem dann aktuellen Status ver'und'et, dennoch möchte ich es aus Lerngründen auch anders realisieren.

    Dazu würde ich mir gerne einen einfachen Timer als eigenen Logikbaustein bauen, der einmalig eine Zeit bekommt und nach den x Sekunden den Ausgang auf irgendwas setzt, das ich auswerten kann, unabhängig davon, was am Eingang weiterhin passiert, vielleicht auch noch mit einem resetierbaren Eingang "for future use".

    Nun finde ich aber weder die hsl-Datei für die Treppenhauslichtfunktion noch die Ein/Auschaltverzögerung unter logic, um mal zu schauen, wie man sowas macht. Könnt ihr mir sagen, wo ich schauen muss?

    Kann man eigentlich Logikbausteinmakros oder gar -funktionen schreiben? Wenn ich immer wiederkehrend 3 oder mehr Bausteine gleichartig zusammenstelle, wäre das echt eine Vereinfachung.

    Einen Kommentar schreiben:


  • dhe
    antwortet
    Zitat von Tokamak Beitrag anzeigen
    Gibt es eine Doku über Format und einsetzbare Funktionen? Dann kann man sich den einen oder andern Baustein selbst bauen.
    Einen einfachen Einstieg bietet dir das Wiki:
    https://knx-user-forum.de/mediawiki/...tein_erstellen

    Die Variablen sind ganz unten mit einem Link zu erreichen (welche Variable für was ist).

    Grüsse
    Dominique

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    Korrektur:

    Die Funktion des Binaus ist so definiert:

    Der Baustein gibt an A1 das Ergebnis der boolschen Operation "E1<>0" aus. An A2 das invertierte Ergebnis.

    Du könntest dein Wunschziel erreichen, wenn du das Ausgangsobjekt nur an A1 anhangst. Da erscheint dann der durchgereichte Eingang.

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    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 :-)

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    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

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    *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.

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    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

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    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.

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    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.

    Einen Kommentar schreiben:


  • Tokamak
    antwortet
    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.

    Einen Kommentar schreiben:

Lädt...
X