UDP Eingang Befehlserkennung: String Ja/Nein

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Friedolin
    Dumb Home'r
    • 02.01.2017
    • 14

    #1

    UDP Eingang Befehlserkennung: String Ja/Nein

    Hallo zusammen,

    kann ich bei einem UDP Eingang einfach nur erkennen, ob der String in der Befehlserkennung vorhanden ist oder nicht?
    Hintergrund ist, dass ich ein Json mit den MAC-Adressen in meinen Netzwerk bekomme und nun einfach testen will, ob eine MAC-Adresse vorhanden ist oder nicht (Stichwort: Anwesenheit-Erkennung via Fritzbox).
    Im Moment lass ich mir das nächste Zeichen nach der Mac-Adresse mit \1 ausgeben und würde das dann in der Config weiter bearbeiten, schöner wäre aber natürlich ein digitaler Wert 0/1.
    Und nein, mit "Als Digitaleingang verwenden" funktioniert´s nicht (jedenfalls nicht mit meiner Herangehensweise).

    Vielen Dank schon einmal
    Friedolin
  • svethi
    Lebende Foren Legende
    • 25.08.2015
    • 6320

    #2
    Das sieht so schon ganz gut aus. Ist denn die Zahl/Byte danach immer gleich? Könntest sonst die Werteanpassung im Eingang benutzen um das auf 0-1 zu übersetzen. Allerdings ist bei einem Logikbaustein 0 = 0 und !=0 = 1
    Du musst allerdings aufpassen, denn wenn die Mac nicht vorhanden ist, wird der Wert auch nicht auf 0 gesetzt. Das musst Du entweder über Timeout beim Senden den Wert zurücksetzen lassen oder Du musst den Wert auf anderem Weg zurücksetzen.
    Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

    Kommentar

    • Labmaster
      Lox Guru
      • 20.01.2017
      • 2593

      #3
      Ich habe z.B. bei der Nuki Bridge Anbindung beim Virtuellen Eingang auch schon mit dem Fehlerausgang gearbeitet um ein bestimmtes Eingangsergebnis auf einen digitalen Ausgang umzusetzen. Das ganze hab ich irgendwo hier im Forum abgeschaut weis aber nicht mehr von wem oder wo, ist also nicht auf meinem Mist gewachsen.

      Wenn der Fehlerausgang ( im Virtuellen Eingang ) aktiviert wird, dann erscheint dieser als zusätzlicher digitaler Ausgang am Objekt.
      Wenn nun ein empfangener Wert ausserhalb einer angegebenen Validierung liegt, dann wird dieser digitale Fehlerausgang aktiviert.
      Man muss also die Validierung anmachen und als Min/Max Wert für die bestimmte Stelle im Empfangsstring z.B. den Ascii Code Wert angeben.

      Beispiel anhand der Nuki Schloss Lösung, es wird hierbei der Batterie Status am Fehlerausgang ausgegeben.

      Ausgewertet werden soll, ob "batteryCritical" "false" ist, hierbei kommt z.B. unter anderem folgendes rein.

      "nukiId": 141999130,
      "name": "Home",
      "lastKnownState": {
      "state": 1,
      "stateName": "locked",
      "batteryCritical": false,

      Die Befehlserkennung wird nun wie folgt gemacht:
      nukiId": 141999130\i"batteryCritical\i": \1 (bedeutet, suche nach "nukiId: 141999130" gefolgt von irgendwas, gefolgt von "batteryCritical:" gefolgt von einem Zeichen das ausgewertet werden soll.

      Der Fehlerausgang wir aktiv gesetzt, Validierung auch, als min und max Wert der Validierung wird 102 eingetragen, was als Ascii Wert dem Zeichen f entspricht. ( http://www.torsten-horn.de/techdocs/ascii.htm )

      Mit dem /1 in der Befehlserkennung wird an der entsprechenden Stelle das jeweilige Byte im ankommenden String als Ascii Wert empfangen. Steht also an dieser Stelle ein f (vom ersten Buchstabe von false) was dem Wert 102 entspricht, dann wird der Fehlerausgang nicht gesetzt, steht dort etwas anderes, dann geht der Fehlerausgang auf aktiv (1)

      Hoffe das ist irgendwie verständlich.


      Zuletzt geändert von Labmaster; 02.08.2017, 18:42.

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6320

        #4
        Das mit dem Fehlerausgang hat nur das Problem, dass Du Fehler Pushmeldungen bekommst, wenn Du die Systemmeldungen pushen lässt.
        um das zu umgehen, kannst Du den Wert auch über HTTP:// REST zurücksetzen. Manchmal muss man leider tricksen
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Friedolin
          Dumb Home'r
          • 02.01.2017
          • 14

          #5
          Danke an Euch beide für die Unterstützung.
          Tatsächlich hat es mit dem Fehlerausgang auch nicht geklappt.
          Ich hab´s mir jetzt einfach gemacht und gleich in Node-RED (damit hol ich mir die Daten von der FritzBox) die MAC-Adressen überprüft..
          Das JSON gibt jetzt nur noch die Personen mit 0/1 zurück.

          Kommentar

          Lädt...