Auslösung Ereignis am Beispiel Status-Baustein

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • GemischtesHack
    Dumb Home'r
    • 04.02.2021
    • 26

    Auslösung Ereignis am Beispiel Status-Baustein

    Hallo zusammen,

    ich habe ein simples Problem und finde seit Tagen keine Lösung.
    Ziel ist, ein Ereignis auszulösen bzw. etwas zu senden, wenn eine Bedingung erfüllt ist. Nun will ich aber beispielsweise nur EIN senden, aber nie AUS.

    Mein konkretes Beispiel:
    Ich habe einen Telegram-Bot, der mir Nachrichten sendet.
    Will ich also eine Nachricht aus Loxone heraus senden, gebe ich einem Textmerker die Nachricht. Da diese Nachrichten auch über einen Statusbaustein gesandt werden, wird die Nachricht bei Nichterfüllung eben NULL oder 0 oder was auch immer ich festlege.
    Diesen Merker (also die Nachricht) lasse ich dann durch einen Statusbaustein laufen, um eben diese leere Nachrichten nicht zu senden, also auszufiltern. Das sieht dann so aus:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: lox.JPG
Ansichten: 755
Größe: 122,1 KB
ID: 289874

    Nun wird meine Nachricht gesendet, sobald aber der Merker nun den Wert NULL oder 0 bekommt, löst der Statusbaustein natürlich trotzdem ein AUS oder 0 aus, was dann auch wieder eine entsprechende Nachricht sendet.

    Ich habe das Gefühl, dass mein Konzept falsch ist und bitte daher um Hilfe :-)

    Grüße​
  • inswe
    LoxBus Spammer
    • 19.06.2016
    • 230

    #2
    Vielleicht hilft dir ein "Tastschalter", bei dem du den Ausgang "QOn" nutzt.

    Kommentar

    • Gerd Clever
      MS Profi
      • 24.07.2016
      • 642

      #3
      Zitat von GemischtesHack
      ... gebe ich einem Textmerker die Nachricht... Diesen Merker (also die Nachricht) lasse ich dann durch einen Statusbaustein laufen, ...​
      Nach meinem Verständnis kannst du nur numerische Werte an die Eingänge des Statusbausteins legen und auswerten. Die Vergleichsoperationen machen ja für Text keinen Sinn.

      Könntest du mal beschreiben, was denn typisch im Merker stehen könnte bzw. bei welchem Text kein Ereignis ausgelöst werden soll?
      Miniserver Gen 2, v13.1.11.17, 9x Extension, 2x Relay Extension, 4x 1-Wire, Türkontakte, Mobotix T25

      Wenn der Herr nicht das Haus baut, dann ist alle Mühe der Bauleute umsonst. (Psalm 127,1)

      Kommentar

      • GemischtesHack
        Dumb Home'r
        • 04.02.2021
        • 26

        #4
        Gute Idee, aber wie sende ich dann einen Text?
        Ich bräuchte ja sowas wie einen Analogspeicher für Text.

        Kommentar

        • Tico
          Lox Guru
          • 31.08.2016
          • 1035

          #5
          Zur Info: Textvergleiche funktionieren gut.

          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Status Block.png
Ansichten: 405
Größe: 17,4 KB
ID: 289956
          Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

          Kommentar


          • GemischtesHack
            GemischtesHack kommentierte
            Kommentar bearbeiten
            aber das löst ja mein Problem nicht oder habe ich was übersehen?
        • GemischtesHack
          Dumb Home'r
          • 04.02.2021
          • 26

          #6
          Zitat von Gerd Clever

          Könntest du mal beschreiben, was denn typisch im Merker stehen könnte bzw. bei welchem Text kein Ereignis ausgelöst werden soll?
          Ein Ping-Baustein prüft die Verbindung zu eine NAS, Ausgang geht an einen Statusbaustein, welcher einen Text generiert, wenn AUS vom Ping geliefert wird. Der Statusbaustein generiert hierbei den Text "NAS offline" oder eben NICHTS, wenn EIN geliefert wird. Der Textausgang des Statusbausteins soll nun an den Merker und danach an den HTTP-Ausgang. Aber bereits der Merker bekommt dann folgende Werte zugewiesen:

          AUS "NAS offline"
          EIN 0

          Und dadurch wird auch immer einer "0" gesendet, obwohl ich das überhaupt nicht will.
          Ich bräuchte also so etwas wie: "Wenn ungleich 0 oder ungleich "", dann sende Text1 an ....", oder eben einen Analogspeicher für Text.

          Oder ich gehe das ganze Thema falsch an :-)

          Kommentar


          • romildo
            romildo kommentierte
            Kommentar bearbeiten
            Warum nicht einfach den HTTP Ausgang direkt an den Ping und den Meldetext direkt in Meldung bei Ein?

          • GemischtesHack
            GemischtesHack kommentierte
            Kommentar bearbeiten
            würde gehen, dann brauche ich aber für jede einzelne Meldung einen HTTP-Befehl und kann nur Konstanten versenden
        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5128

          #7
          GemischtesHack
          Versuch es mal mit einem Leerzeichen im Statustext in der zweiten Zeile.
          lg Romildo

          Kommentar


          • GemischtesHack
            GemischtesHack kommentierte
            Kommentar bearbeiten
            dann wird eben " " ausgegeben bzw. dann halt auch gesendet
        • romildo
          Lebende Foren Legende
          • 25.08.2015
          • 5128

          #8
          Ich habe erlich gesagt scheinbar noch nicht wirklich begriffen um was es hier genau geht.
          In #6 schreibts Du dass du den Text "NAS offline" oder eben nichts schicken möchtest. Das geht doch ohne Problem direkt so wie ich in #6.1 geschrieben habe.
          Du kannst doch auch Text direkt in den Ausgangsbefehl schreiben.

          Zu #7, klar ist auch, dass ein Leerzeichen an den Ausgang des Statusbaustein gelegt wird, da ja diese Bedingung dann erfüllt ist.

          Du sendest ja irgendwohin. Wie sieht denn der jetzige Sendebefehl im HTTP-Ausgangsbefehl aus?

          lg Romildo

          Kommentar

          • GemischtesHack
            Dumb Home'r
            • 04.02.2021
            • 26

            #9
            Zitat von romildo

            Du sendest ja irgendwohin. Wie sieht denn der jetzige Sendebefehl im HTTP-Ausgangsbefehl aus?

            und <v> wird gesendet
            Angehängte Dateien

            Kommentar

            • romildo
              Lebende Foren Legende
              • 25.08.2015
              • 5128

              #10
              Soweit ich diesen Thread jetzt durchgelesen habe, kann ich bis jetzt nur eine Meldung ausfindig machen.
              Daher nochmals die Frage, warum verbindest Du nicht einfach den Ping Ausgang mit dem HTTP-Ausgangsbefehl und schreibst da an Stelle von <v> den gewünschte Text "NAS offline" hinein?
              lg Romildo

              Kommentar


              • GemischtesHack
                GemischtesHack kommentierte
                Kommentar bearbeiten
                hatte ich doch in #6.2 geschrieben, da ich eben mehrere befehle habe und 1. nicht für jeden einen http-befehl anlegen kann und 2. auch variablen verwenden möchte, also beispielsweise einfach aus einen Statusbaustein heraus das Textergebnis senden

              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Ja, hast Du in #6.2 geschrieben.
                Bei Deinen Bildern und bei Deinen Fragen kann ich aber auch nicht nur ansatzweise davon was finden.

                Nun gut, meine letzte Antwort dazu:
                In Loxone ist mir keine Möglichkeit bekannt einen Text zu speichern.
                Somit sehe ich auch keine Möglichkeit Dein Vorhaben über irgendwelche Bausteine zu realisieren.
                (Ausgenommen Programmbaustein)
            • Mango
              MS Profi
              • 10.10.2015
              • 650

              #11
              Schreib doch im Statusbaustein einfach die Bedingung, AI1 = 0 dann einen Statuswert, womit dein Empfänger nichts anfangen kann.

              Alternativ kannst du dir mit mehreren Statusbausteinen deinen sendebefehl zusammen setzen und die Adresse entsprechend ins Leere laufen lassen, wenn AI1 = 0
              Take it easy, but take it.

              Kommentar

              • romildo
                Lebende Foren Legende
                • 25.08.2015
                • 5128

                #12
                Einen Vorschlag wie man einen Text in Loxone speichern könnte hätte ich doch noch.
                Ist halt nicht gerade smart, aber wenn es nicht anders geht immerhin eine Möglichkeit.
                Als Speicher könnte man den Text an einen Texteingang schicken.
                Bei den Texten welche ausgegeben werden sollen, müsste man /dev/sps/io/BezeichnungTexteingang/ als Präfix einfügen. Texte welche diesen Präfix nicht haben, würden somit auch keine Änderung im Texteingang bewirken.
                lg Romildo

                Kommentar


                • GemischtesHack
                  GemischtesHack kommentierte
                  Kommentar bearbeiten
                  danke so gehts

                • romildo
                  romildo kommentierte
                  Kommentar bearbeiten
                  bitte gerne.
              • lantic
                Dumb Home'r
                • 28.11.2019
                • 19

                #13
                Can someone rephrase this solution, please ?
                I would like to overcome the same problem as GemischtesHack​ posted. (avoiding "0" zero's or old data forwared as text input to Telegram)
                But I do not manage the end solution, presented by romildo​.
                This is based on the "text generator" block ?

                Kommentar

                • lantic
                  Dumb Home'r
                  • 28.11.2019
                  • 19

                  #14
                  Ich konnte erfolgreich einen Text - intern - über eine virtuelle Texteingabe senden.
                  Und dank des Präfixes konnte ich die Nullen vermeiden.
                  Allerdings erhalte ich immer noch die Nachrichten doppelt oder vierfach. Wie schafft ihr es, nur eine Telegram-Nachricht zu senden/empfangen ??

                  (
                  Dies musste ich für die VTI-Umleitung anwenden:

                  http://userassword@localhost
                  /dev/sps/io/<Name of the Virtual Input> // *Interner Name des "VTI1" (=Virtuelle Texteingabe 1), nicht der freundliche Name.

                  Zum Beispiel, platziere dies in der Textausgabe:
                  /dev/sps/io/VTI1/Testbericht - Telegram bericht service is OK !
                  )

                  Kommentar


                  • romildo
                    romildo kommentierte
                    Kommentar bearbeiten
                    Sofern die "Bezeichnung" einmalig ist und keine Sonderzeichen enthält, funktioniert das auch so. Man kann aber auch die Anschlussbezeichnung dafür verwenden.

                    Ohne zu wissen, wie du den Virtuellen Ausgangsbefehl "fütterst", kann dir wohl keiner sagen warum die Nachricht doppelt oder sogar vierfach kommt
                • lantic
                  Dumb Home'r
                  • 28.11.2019
                  • 19

                  #15
                  Möglicherweise ist dies zu verfolgen... :

                  (Vaatwas = geschirrspûler)

                  Die Absicht besteht darin, eindeutige Nachrichten über Telegram zu senden.
                  Aber ich erhalte sie immer mindestens doppelt. Bis zu vierfach.
                  Die Daten, die ich mitsende <v1.3>, sind ab der dritten Nachricht möglicherweise nicht mehr aktuell. (durch andere Logik zurückgesetzt)

                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 193
Größe: 79,2 KB
ID: 411064

                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 166
Größe: 50,4 KB
ID: 411065

                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 167
Größe: 72,0 KB
ID: 411066

                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 166
Größe: 73,9 KB
ID: 411067

                  ​Properties Virtual output command:
                  Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 167
Größe: 86,8 KB
ID: 411068



                  ​​

                  Kommentar


                  • romildo
                    romildo kommentierte
                    Kommentar bearbeiten
                    Ich verstehe jetzt nicht wirklich, wo der Schuh drückt.
                    Es erfolgt bei jeder Änderung an einem Eingang vom Statusbaustein ein Versand an den Texteingang. Egal ob sich der Wert an I1, I2 oder I3 ändert.
                Lädt...