MQTT FHEM Geofancy Miniserver

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • logol01
    MS Profi
    • 03.03.2018
    • 832

    #1

    MQTT FHEM Geofancy Miniserver

    Hallo zusammen,

    ich habe folgendes nachgebaut.


    Hiermit kann ich die Anwesenheit und Abwesenheit über Geoinformationen an den Miniserver übertragen.
    Das ganze schicke ich über UDP von FHEM an den Miniserver.

    Funktioniert tadellos.

    Jetzt möchte ich alles per MQTT auf http Eingänge Richtung Miniserver schicken und nicht mehr per UDP

    Die Zeit für Ankunft und Abkunft müsste ich aber umbauen, dass der Miniserver die Zeit richtig versteht......

    Die Readings in FHEM sehen so aus:

    lastArrival 2018-12-27 21:19:18
    lastDeparture 2018-12-27 21:19:24

    In der 99_myUtils.pm Datei in FHEM wird der Wert wie folgt umgebaut:

    Code:
    #AnwesenheitToLoxone
    sub ResidentToLoxone ($)
    {
    my ($device) = @_;
    my $state = ReadingsVal("$device","state","-1");
    if ($state eq "absent") {
    $state = "0";
    }
    if ($state eq "home") {
    $state = "1";
    }
    my $arrival=time_str2num(ReadingsVal("$device","lastArrival","-1"));
    my $departure=time_str2num(ReadingsVal("$device","lastDeparture","-1"));
    my $wayhome=ReadingsVal("$device","wayhome","-1");
    
    UDP_Msg("192.168.178.245" , "7200" , "$device: $state $arrival $departure $wayhome");
    }
    Wie kann ich das bewerkstelligen, dass ich mit so einem Reading mit MQTT den Wert als verwertbaren Wert im Miniserver bekommen kann.

    Freue mich sehr auf Eure Rückmeldungen!

    VG

    Logol01
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11233

    #2
    Den $state (absent oder home) bekommst du jetzt schon direkt durch, richtig?

    Folgendes habe ich zusammen gegoogelt und nicht selbst ausprobiert:

    Eigene Readings per Trigger erstellen:




    Rechnen mit Readings:


    Hintergedanke wäre, ein eigenes Reading zu erstellen, dass die Zeit in Linux Epoch umrechnet, und dann müsste man noch Loxone-Zeit daraus machen. Oder auch einfach den String an die eigenen Bedürfnisse anpassen.

    Mit dem MQTT GENERIC müsste das dann auch automatisch übertragen werden.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • logol01
      MS Profi
      • 03.03.2018
      • 832

      #3
      so geht es:

      Code:
      attr rgr_Residents userReadings lastArrival2 {time_str2num(ReadingsVal("$name","lastArrival","-1"))}, lastDeparture2 {time_str2num(ReadingsVal("$name","lastDeparture","-1"))}
      attr rr_Christoph userReadings lastArrival2 {time_str2num(ReadingsVal("$name","lastArrival","-1"))}, lastDeparture2 {time_str2num(ReadingsVal("$name","lastDeparture","-1"))}

      Kommentar

      • logol01
        MS Profi
        • 03.03.2018
        • 832

        #4
        Hallo zusammen,

        komischerweise werden bei dem FHEM Namen "rr_Christoph" über MQTT keine Readings per http an den Loxone Miniserver übertragen.
        Kann es sein, das dies so ist, weil rr_Christoph kein "device" ist?
        Bei dem Gerät "rgr_Residents" wird alles per http an den Miniserver übertragen.....
        Was müsste ich in diesem Fall machen?

        Ich habe meine Screenshots mal angefügt.

        In meiner MQTT_Generic_Bridge steht laut Anleitung (siehe Screenshot) -->
        globalPublish *:topic={"FHEM/$device/$reading"}

        Freue mich sehr über Euer Feedback!

        LG

        Logol01

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11233

          #5
          Kommt‘s beim Gateway auch nicht an?
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • logol01
            MS Profi
            • 03.03.2018
            • 832

            #6
            Hallo Christian,

            anbei die Screenshots vom Gateway für alle Readings die mit der Selection "rr_Christoph" ankommen!

            Danke für Deine Hilfe!

            LG

            Logol01

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11233

              #7
              Kannst du irgendein konkretes Beispiel nennen? Ich sehe 30 Werte mit rr_Christoph - ist dein Wert da jetzt dabei oder nicht?
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • logol01
                MS Profi
                • 03.03.2018
                • 832

                #8
                Hallo Christian,

                ahh - sorry.

                Nein ist nicht dabei.
                Mit FHEM_rr_Christoph werden nur 2 Werte übertragen - siehe Bild.

                Mein Werte die ich bräuchte wären:
                FHEM_rr_Chirstoph_lastArrival2
                FHEM_rr_Chirstoph_lastDeparture2

                Die einzigen Werte die mit FHEM_rr_Christoph am Gateway ankommen sind "FHEM_rr_Christoph_state" und "FHEM_rr_Christoph_wayhome"

                Ich weiß nicht warum alle anderen Werte mit FHEM_rr_Christoph_XXXXX nicht ankommen.

                Bei "FHEM_rgr_Residents" kommen alle Werte am Gateway an.

                Diese 30 Readings mit rr_Christoph die Du siehst sind in den Geräten "FHEM_rgr_Residents_XXXXXX" und "FHEM_geofancy_XXXXXX"

                Hängt das mit dem "DEF" Wert in FHEM unter dem "rr_Christoph" Einstellungen zusammen - (siehe mein Bild) - damit ist ja das Device nicht "rr_Christoph" sondern das Device "rgr_Residents" - oder?
                Und in der MQTT_Generic_Bridge steht laut Anleitung -->
                "globalPublish *:topic={"FHEM/$device/$reading"}"

                Müsste dann noch was stehen wie z.B. "globalPublish *:topic={"FHEM/$name/$reading"}" ?

                Ich stehe echt auf dem Schlauch......

                Kommentar

                • Christian Fenzl
                  Lebende Foren Legende
                  • 31.08.2015
                  • 11233

                  #9
                  Wui, da Kenn ich mich mit FHEM dann doch zu wenig aus...

                  Ob das bei der MQTT_GENERIC_BRIDGE mit $name funktioniert, müsstest du in der commandref nachlesen.

                  Sonst fällt mir ein, ein Dummy-Device anzulegen, wo deine Werte hingeschrieben werden. Weiß aber auch nicht, ob und wie das genau geht. https://fhem.de/commandref.html#dummydefine

                  Lg Christian
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar

                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11233

                    #10
                    PS: Probier Mal mit $name, da steht was davon, dass diese Variable auch existiert.
                    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                    Kommentar

                    • logol01
                      MS Profi
                      • 03.03.2018
                      • 832

                      #11
                      also - habe es geschafft - läuft jetzt komplett auf http Eingänge.
                      sie in Post #3 userreadings eintragen und zudem stand in der Anleitung un dem Gerät rr_Christoph eine Einschränkung.

                      Code:
                      event-on-change-reading state,wayhome
                      Dieses Attribut muss man löschen - dann werden von rr_Christoph auch alle Readings von FHEM über MQTT an den Miniserver übertragen.

                      Funktioniert echt tadellos.
                      Kann Euch wirklich animieren dieses Geofancy zu verwenden.
                      Weiß zwar noch nicht was ich für Aktionen ausführe, wenn das Haus weiß wer alles zuhause ist - aber funktionieren tut das perfekt.

                      TADO wirbt ja damit, dass sie über Geoinformationen die Heizung einschalten kann - ich kann das jetzt auch - ohne TADO :-)

                      Kommentar

                      Lädt...