Ankündigung

Einklappen
Keine Ankündigung bisher.

Meldungsplugin für Textmeldungen auf KNX-Tastern

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

    Meldungsplugin für Textmeldungen auf KNX-Tastern

    Hallo zusammen,
    Ich hab mir ein Plugin gestrickt, dass Meldungen auf meinen MDT RTRs und Glastastern anzeigt. Klingt trivial, ist es aber gar nicht mal so sehr.

    Warum:
    Wenn bei uns im Haus ein Fenster auf ist, will ich wissen, wie warm es in dem Raum ist und wie warm es draußen ist (Hilft Sommers wie Winters). Wenn jemand anruft, soll dessen Name auf dem Display angezeigt werden. Wenn die Waschmaschine / der Trockner fertig ist, will ich das wissen. Und wenn der AB ne Nachricht hat, und wenn gerade Unwetteralarm ist auch und sowieso. Ich hatte alle Funktionen separat als Logiken laufen gehabt und es war ein wenig anstrengend, da natürlich das Timing echt beschissen war. Also habe ich eine zyklische Benachrichtigung geschrieben - dann war aber das Problem, dass wenn in 8 Räumen Fenster auf sind, man die Info, dass die Waschmaschine fertig ist nicht mitbekommt. Also braucht man eine Priorisierung... Jetzt ruft jemand an, das will ich aber sofort lesen und das soll auch nicht durch ne fertige Waschmaschine überdeckt werden. Ach, und wenn gar keine automatische Meldung ansteht soll bitte noch ein Standardtext auf den Glastaster kommen und nicht einfach der letzte Wert stehen bleiben.
    • Also gibt es nun Nachrichtensenken, das ist die jeweilige KNX-Adresse die angesprochen werden soll.
    • Und Nachrichten-Ringe. Auf jedem Ring gibt es eine feste Anzahl an Slots, für die geprüft wird, ob die Nachricht relevant ist. Die Anzahl wird natürlich aus der Menge der möglichen Nachrichtenquellen automatisch definiert. Was ich sagen will: Es gibt keine Not eine Logik aufzurufen und zu sagen "Schick mal ne Nachricht". Wenn man das einbinden will, muss man nur zwei zusätzliche Items einbauen, eines das die Nachricht hält, und ein boolean, das sagt, ob die Nachricht noch relevant ist. Das kann ja auch per Autotimer nach 5min wieder deaktiviert werden.
    Die Nachrichtenringe, werden gemäß der Reihenfolge der Anlage priorisiert, so dass die Reihe dann z.B. so aussieht: "Wäsche sauber", "SchlaZi: 19,4°C", "Wäsche sauber", "Küche 20,2°C", "Wäsche sauber", "Außen: 17,4°C", ....

    Wir nutzen unsere RTRs seit 2015 für die Anzeige von Meldungen. Das Plugin läuft seit was mehr als einem Jahr bei uns und ist jetzt IMHO release-bar...

    Code:
    meldung:
        type: str
        knx_dpt: "16.001"
        knx_send: xyz
        knx_reply: xyz
        enforce_updates: "yes"
        text_display_sink_for_rings:
            - "wichtiger_als_fenster"
            - "fenster"
        text_display_sink_rings_with_prio:
            - "anruf"
        text_display_cycle_time: 3   # alle drei sekunden wird die nächste Nachricht eingeblendet.
        was_relevantes_da:
            remark: Das ist optional, das kann man nutzen um z.B. Nachrichten zurückzunehmen.
            type: bool
            text_display_sink_for_rings:
                - "wichtiger_als_fenster"
                - "fenster"
            text_display_sink_rings_with_prio:
                - "anruf"
    
    fritzbox:
        monitor:
            message:
                type: bool
                eval: sh.fritzbox.monitor.incoming.event() == 'ring' and sh.fritzbox.monitor.incoming.is_call_incoming() == True
                eval_trigger:
                    - ..incoming.is_call_incoming
                    - ..incoming.event
                text_display_target_ring: 'anruf'
                text_display_content_source_item: .message_text
                message_text:
                    type: str
                    eval: "'T:{}'.format(sh.fritzbox.monitor.incoming.last_caller())"
                    eval_trigger: fritzbox.monitor.incoming.last_caller
    
    schlafzimmer:
        raum_name:
            remark: Das kommt aus nem struct, daher auch das dynamisch
            initial_value: "SchlaZi"
        fenster:
            type: bool
            remark: Wenn offen, dann 1. Kann man natürlich per Eval umdrehen.
        klima:
            temperatur:
                visu_acl: ro
                type: num
                message_string:
                    type: str
                    eval: >
                        f"{sh.....raum_name()}: {sh...():.1f}°C"
                    eval_trigger: ..
                    display_is_relevant:
                        type: bool
                        eval: or
                        eval_trigger:
                            - .....fenster
                        text_display_target_ring: 'fenster'
                        text_display_content_source_item: ..
    Frage 1: Kann das noch jemand brauchen, oder bin ich der Einzige der seine Taster derartig vergewaltigt?
    Frage 2: Ist das ein System-Plugin oder ein Modul? Oder ist das was ganz anderes?
    Zuletzt geändert von jentz1986; 15.08.2021, 10:05. Grund: Attributnamen an Implementierung angepasst.

    #2
    Ich kann nur zu Frage 1) sagen, dass ich die Idee klasse finde und ich sicherlich guten Gebrauch davon nehmen würde

    Kommentar


      #3
      Hört sich gut an, könnte ich auch gebrauchen!

      Kommentar


        #4
        Hier ist das Plugin:
        https://github.com/jentz1986/smartho...y/text_display

        Achtung: Die Attributnamen sind anders als in der ersten Version des ersten Post. Die Dokumentation im Pluginordner sollte einen ganz brauchbaren Überblick geben und auch den Einstieg erleichtern.
        Zuletzt geändert von jentz1986; 15.08.2021, 12:23.

        Kommentar


          #5
          Servus Jens,

          danke für Dein Plugin .....

          Hab mit Deinen Beispieldaten - aus GIT - getestet .... jedoch ohne "text_display_sink_rings_with_prio:" / Außentemp / FB

          Das item bekommt den richtigen Wert ....

          Item.jpg

          In der Senke steht aber:
          senke.jpg

          Aber SHNG hat ein Problem:
          Code:
          2021-09-06  19:57:18 WARNING  plugins.knx         Daten 25.0 konnten nicht für Datenpunkt Typ 16.001 codiert werden
          Am Display kommt nix an ....

          Eigentlich sollte "SchlaZi: 25.0 C" gesendet werden. Oder ??

          Uuuuuund was ich überhaupt nicht verstehe ist: " Größer Zeichen / Zeilenumbruch / f / 1f "
          Code:
          eval: >
          f"SchlaZi: {sh...():.1f} C"
          Hatte ich so noch nicht gesehen. Aber es scheit ja zu laufen.

          Wenn Du mit einen Tipp geben könntest, wäre klasse.

          Danke, JG
          Zuletzt geändert von Haiphong; 06.09.2021, 19:52.
          Gruß, JG

          Kommentar


            #6
            Glaube Problem ist erkannt:

            Den Block "display_is_relevant:" einmal weiter einrücken und bei "eval_trigger:" ein Punkt vorne dazu

            Code:
                        display_is_relevant:
                            type: bool
                            eval: or
                            eval_trigger:
                              - ....irgendein_fenster_im_schlafzimmer_offen
                            text_display_target_ring: 'fenster'
                            text_display_content_source_item: ..
            Gruß, JG

            Kommentar


              #7
              Hi Haiphong ,
              Danke für den Hinweis, ich habs gefixt.

              Wer das Plugin direkt aus einem Repo haben möchte:
              https://github.com/jentz1986/shng-text-display-plugin

              Ich habe jetzt "meine" Plugins in jeweils eigene Repositories ausgelagert, die ich halbautomatisch mit den Pull Requests in das Plugins-Repository en-par halte.
              Zuletzt geändert von jentz1986; 11.09.2021, 10:17. Grund: Ergänzungen

              Kommentar

              Lädt...
              X