Anzeige offener Fenster auf einer Sitemap

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

rebell21
Beiträge: 104
Registriert: 23. Aug 2024 09:34
Answers: 0

Anzeige offener Fenster auf einer Sitemap

Beitrag von rebell21 »

ich möchte die Liste der offenen Fenster auf einer Sitemap ausgeben.

Ich habe eine Gruppe der Fensterkontakte erstellt.

Code: Alles auswählen

label: Alle Fensterkontakte
type: Group
category: contact
groupNames: []
tags: []
groupType: None
function: None


In dieser Gruppe sind alle items der Fensterkontakte vom Typ Contact enthalten

Code: Alles auswählen

label: Tür-/Fenster-Zustand
type: Contact
category: Contact
groupNames:
  - Wohnzimmertur
  - alle_Fenster_Kontakte
tags:
  - Point
  
  ......... alle weiteren Items der Fensterkontakte   ......
Außerdem konnte ich eine Sitemap definieren und in Openhab einlesen und im Basic UI anzeigen
Ich möchte nun auf dieser Sitemap die Liste der offenen Fenster anzeigen.

Wie würde man das machen ?
Wie macht man überhaupt die Anzeige eines Textstrings in openhab auf einem Widget ?

Benutzeravatar
udo1toni
Beiträge: 15053
Registriert: 11. Apr 2018 18:05
Answers: 239
Wohnort: Darmstadt

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von udo1toni »

Ich habe im Ursprungsposting geantwortet :)

Was Deinen Wunsch nach einer Liste in Textform betrifft, so wird das nicht einfach so gehen, dazu bräuchtest Du eine Rule, welche den Text berechnet.
Dieser Text muss dann in ein String Item gespeichert werden und dieses String Item kannst Du einfach mit dem Text Widget anzeigen lassen. Dummerweise kannst Du aber nicht beeinflussen, wie der Text ausgegeben wird, weshalb dieser Ansatz mit Sitemaps zum Scheitern verurteilt ist.
openHAB4.3.2 stable in einem Debian-Container (bookworm) (Proxmox 8.3.3, LXC), mit openHABian eingerichtet

rebell21
Beiträge: 104
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von rebell21 »

wie gibt man denn einen Text in Openhab aus ?
Ich habe mir den Text in einer Rule zusammengebastelt. Aber ich kann den Text nicht ausgeben.

Wie kann ich das String Item auf einem Text Widget ausgeben ? Woher kommt das TextWidget ?


Und sendNotification funktioniert bei mir nicht. sendNoticfication kann nicht aufgelöst werden sagt mir frontail
Muss ich ein spezielles Binding installieren, damit sendNotification funktiniert ?

Benutzeravatar
udo1toni
Beiträge: 15053
Registriert: 11. Apr 2018 18:05
Answers: 239
Wohnort: Darmstadt

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von udo1toni »

Du musst ein String Item verwenden, dann kannst Du den Status an ein Text Widget koppeln, so dass der Status als Text ausgegeben wird.
Hilft aber nicht, weil das Text Widget mit hoher Wahrscheinlichkeit den Text abschneidet, falls er zu lang wird.
sendNotification ist eine Action, dazu musst Du aber ein passendes Thing haben, z.B. einen Mailaccount, den Cloudzugriff oder sowas, das ist aber ein anderes Thema.
openHAB4.3.2 stable in einem Debian-Container (bookworm) (Proxmox 8.3.3, LXC), mit openHABian eingerichtet

rebell21
Beiträge: 104
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von rebell21 »

ich habe das jetzt einmal versucht

es gibt eine Gruppe mit dem Namen "alle_Fenster_Kontakte".
und ich habe eine Rule definiert

Code: Alles auswählen


rule "fensterzustand melden"                                     
when
    Item GATEWAYEXTRAS_Anwesenheit changed to OFF      // Haus wird gerade verlassen
then
    if(GATEWAYEXTRAS_Anwesenheit.state == OFF && alle_Fenster_Kontakte.members.filter[ i | i.state != CLOSED ].size > 0) { // niemand zuhause und mindestens ein Fenster offen
        var mailActions = getActions("mail","mail:smtp:270ff9aa89")
        var String strList = "Es ist noch mindestens ein Fenster offen: "                             // Variable initialisieren
        alle_Fenster_Kontakte.members.filter[ i | i.state != CLOSED ].forEach[ k | strList = strList + k.name + ", "] // Liste mit Elementen füllen
        logInfo(strList) // Meldung senden.
        mailActions.sendMail("peter.walber@t-online.de",strList)
    }
end
entsprechende Mail Items sind auch als Thing definiert
Die Rule wird korrekt eingelesen und erscheint innerhalb der Rules Rule "fensterzustand melden". Der Dateiname ist "anzeige_offene_Fenster.rules". Sie wird auch getriggert durch Setzen der Variablen / des Items "GATEWAYEXTRAS_Anwesenheit". Das funktioniert und sehe ich im log

Code: Alles auswählen


2025-01-14 14:18:45.865 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'GATEWAYEXTRAS_Anwesenheit' received command OFF
2025-01-14 14:18:45.868 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'GATEWAYEXTRAS_Anwesenheit' predicted to become OFF
2025-01-14 14:18:45.869 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'GATEWAYEXTRAS_Anwesenheit' changed from ON to OFF

Wenn die Rule ausgeführt wird, wird im log aber folgender Fehler angezeigt (es ist genau ein Fenster von acht Fenstern offen).

Code: Alles auswählen


[b]2025-01-14 13:52:50.120 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'anzeige_offene_Fenster-1' failed: An error occurred during the script execution: index=1, size=1 in anzeige_offene_Fenster
[/b]
Ich habe mir die Code Schnipsel für die rule hier aus dem Forum zusammengesucht. Vor allem die Schleifen verstehe ich nicht. Die Zugriffe auf members.filter und i.state und k.name sind mir unklar

Code: Alles auswählen


alle_Fenster_Kontakte.members.filter[ i | i.state != CLOSED ].size > 0
und 
alle_Fenster_Kontakte.members.filter[ i | i.state != CLOSED ].forEach[ k | strList = strList + k.name + ", "] 

Was kann der Fehler sein ?

Benutzeravatar
udo1toni
Beiträge: 15053
Registriert: 11. Apr 2018 18:05
Answers: 239
Wohnort: Darmstadt

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von udo1toni »

logInfo() benötigt zwei Strings als Parameter.
der erste Parameter ist der Loggername, unter dem die Logzeile generiert wird.
Ändere die Zeile so ab:

Code: Alles auswählen

        logInfo("mail",strList) // Meldung senden.
dann sollte es funktionieren.
"mail" ist dann der letzte Teil des Loggernamens. Alle log-Befehle innerhalb der DSL landen unter einer "gemeinsamen" Rubrik, das ist "org.openhab.core.model.script", entsprechend ist der vollständige Loggername in diesem Fall "org.openhab.core.model.script.mail".
Unter diesem Namen kannst Du den Logger dann auch zur Laufzeit steuern (z.B. verhindern, dass logInfo() einen Eintrag generiert).

Ach so...

Code: Alles auswählen

... when
    Item GATEWAYEXTRAS_Anwesenheit changed to OFF      // Haus wird gerade verlassen
then
    if(GATEWAYEXTRAS_Anwesenheit.state == OFF && ...
hier ist

Code: Alles auswählen

GATEWAYEXTRAS_Anwesenheit.state == OFF
immer erfüllt, das kann also entfallen.
openHAB4.3.2 stable in einem Debian-Container (bookworm) (Proxmox 8.3.3, LXC), mit openHABian eingerichtet

rebell21
Beiträge: 104
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von rebell21 »

Danke funktioniert jetzt im Log und als Mail an meinen Mail Account
Was ich nicht hinkriege, sind Notifications an die Openhab App auf dem Handy.
Ich habe einen account in myopenhab.org und kann die über myopenhab.org auch meine GUI (Overview, Standorte, Geräte, Eigenschaften und die Sitemap) aufrufen.

Mir gelingt es jedoch nicht, mit sendBroadcastNotification(strList) eine Benachrichtigung an die Openhab APP auf dem Handy zu senden. Wo sieht man die Benachrichtigungen in der Android App ?

Die openhab Cloud ist so konfiguriert, dass Benachrichtigungen gehen müssten

Was kann der Fehler sein ?

Benutzeravatar
udo1toni
Beiträge: 15053
Registriert: 11. Apr 2018 18:05
Answers: 239
Wohnort: Darmstadt

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von udo1toni »

Die App sollte die Nachricht als Push Nachricht anzeigen.

Kann sein, dass Du das der App erst noch erlauben musst:
openHAB App Menü (Burger-Menü links oben in schwarz/weiß)->Einstellungen->Benachrichtigungen

Evtl. musst Du es auch zusätzlich auf OS-Ebene aktivieren?
Ich nutze selbst kein myOpenHAB...
openHAB4.3.2 stable in einem Debian-Container (bookworm) (Proxmox 8.3.3, LXC), mit openHABian eingerichtet

rebell21
Beiträge: 104
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von rebell21 »

ich habe keinen Menüpunkt "Einstellungen" im Burger Menü. Das ist ja das Problem.

Welche Handapp nutzt Du, um openhab auf dem Handy anzuzeigen ?

Benutzeravatar
udo1toni
Beiträge: 15053
Registriert: 11. Apr 2018 18:05
Answers: 239
Wohnort: Darmstadt

Re: Anzeige offener Fenster auf einer Sitemap

Beitrag von udo1toni »

rebell21 hat geschrieben: 15. Jan 2025 11:38 Welche Handapp nutzt Du, um openhab auf dem Handy anzuzeigen ?
Na die openHAB App https://play.google.com/store/apps/deta ... roid&hl=de oder https://apps.apple.com/de/app/openhab/id492054521 (ich meine, es gab auch mal eine Windows Version, aber wer nutzt noch ein Windows Smartphone?)
openHAB4.3.2 stable in einem Debian-Container (bookworm) (Proxmox 8.3.3, LXC), mit openHABian eingerichtet

Antworten