Gruppenteilnehmer Ausblenden, wenn Offline

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
newhab
Beiträge: 18
Registriert: 5. Dez 2020 16:56
Answers: 0

Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von newhab »

Hallo und Guten Abend
Bin recht neu hier und auch noch nicht soo lange mit Openhab in Berührung
Meine Frage wäre, wie ich Teilnehmer einer Gruppe in der Sitemap ausgeblendet bekomme?!?
Habe meine Std mit Tasmota geflächt und bekomme auch den Status "Offline" eingeblendet in der Sidemap
und eine ganze Gruppe (mit "visibility" ausgeblendet aber nun steh ich vor dem Problem das ich eine Gruppe "gStd" habe,
und da möchte ich nur die Steckdosen (mit ihrer items in einer Extra Gruppe) angezeigt haben, die auch wirklich da sind..

Std.Sitemap:

Code: Alles auswählen

sitemap Std label="Tasmota"
{
Frame label= "Alle Steckdosen"{    
    Group    item=gStd  
    Switch   item=gPower   mappings=[OFF="AUS!"] 
    }
 }
in der Gruppe "gStd" befinden sich die Einzelen Gruppen der Steckdosen..

Std.items:

Code: Alles auswählen

Group gStd   "Alle Std"
Group:String:OR(Online,Ofline)   gStd_Status
Group:Switch:OR(ON,OFF)    gPower   "Steckdosen An[(%d)]"

Group gStd_SD1      (gStd)
    Switch SD1_on           "Std1 on [%s] (gStd_SD1, gPower)
    Switch SD1_Status2    "SD1 [%s]"
    String SD1_Status      "SD1 [%s]"     (gStd_SD1, gStd_Status)
    
Group gStd_SD2      (gStd)
    Switch SD2_on           "Std2 on [%s] (gStd_SD2, gPower)
    Switch SD2_Status2    "SD2 [%s]"
    String SD2_Status      "SD2 [%s]"     (gStd_SD2, gStd_Status)
über den Switch "SDX_Status2 ( der den Selben Thing kanal anspricht wie der String "SDX_Status") kann ich ein "On" / "Off" für "Online" / "Offline" generieren, welches ich in einer Regel verwenden kann.. so wird auch der WLAN Empfang auf "0" gesetzt und "Aus" geschalten, die Std in der Sidemap quasi genullt (da sonst immer die letzten übermittelten Werte angezeigt wurden

Code: Alles auswählen

rule "Wenn SD2 Offline dann aus"
        when 
                Item SD2_Status2 received update OFF
        then   
                SD2_on.sendCommand(OFF)
                SD2_Spannung.postUpdate(0)
                SD2_Rssi.postUpdate(0)
end 
kann mir da bitte jemand einen Tip geben oder hat eine Idee
beste Grüße

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

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von udo1toni »

Das geht nicht. Das ist der Grund, warum ich immer von der Verwendung des Group Widgets abrate, man hat zwar schnelle Ergebnisse mit wenig (Tipp-)Arbeit, verliert dafür aber jegliche Kontrolle über die Anzeige. Vergiss das Group Widget, lege stattdessen alle Unterseiten komplett manuell an, dann kannst Du auch die visibility individuell setzen.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

newhab
Beiträge: 18
Registriert: 5. Dez 2020 16:56
Answers: 0

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von newhab »

Danke für die schnelle Reaktion und Sorry das ich jetzt erst Antworte,
Das ist Schade..
Na dann habe ich doch noch ein bissel mehr Arbeit vor Mir..

aber Wenn ich die Struktur selber Baue, kann ich zum Schluss trotzdem eine Gruppe einbinden ohne das ich Probleme zu erwarten habe...?!?
Also:

Code: Alles auswählen

Frame label="Alle Steckdosen" {
        Switch item=gPower mappings=[OFF="AUS!"]
        Text item=gPower { 
            Frame label="Steckdosen AN" {
                Group item=gStd_dSD1 visibility=[dSD1_on == ON, dSD1_2 == ON]
                Group item=gStd_SD2 visibility=[SD2_on == ON] 
                Group item=gStd_SD3 visibility=[SD3_on == ON]
          } 
        }
        Text item=gStd_Status {
            Frame label="Steckdosen Online"{
                Group item=gStd_dSD1 visibility=[dSD1_Status == Online]
                Group item=gStd_SD2 visibility=[SD2_Status == Online] 
                Group item=gStd_SD3 visibility=[SD3_Status == Online]
            }
        }
    }
 

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

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von udo1toni »

Ja, aber Du hast dann wieder keine Kontrolle über die einzelnen Group Member, nur über die Gruppe als Ganzes.

Nur mal so ... meine Sitemap hat 1092 Zeilen. Das kommt erschreckend schnell zusammen :) aber ich muss dazu auch erwähnen, dass ich an vielen Stellen ähnliche Strukturen habe und deshalb auch viel mit Kopieren und Ändern angelegt habe (z.B. mehrere alternativ angezeigte Graphen, eine Zeile

Code: Alles auswählen

Chart item=PV_Graf period=h refresh=10000 visibility=[Chart_Period==1]
diese Zeile mehrfach kopiert und lediglich hinter dem = bei period und Chart_Period den Wert anpassen, das geht ratz-fatz.
Oder die Raumthermostaten, welche einmal im Raum und einmal in einer Heizungsübersicht angezeigt werden:

Code: Alles auswählen

                Frame label="Bad EG" {
                    Default  item=TS2plusBadEG_TempIs label="Temperatur ist [%.1f °C]"
                    Setpoint item=TS2plusBadEG_TempSet label="Temperatur soll [%.1f °C]" minValue=7 maxValue=25 step=0.1
                    Default  item=TS2plusBadEG_OpMode label="Betriebsart ist"
                    Switch   item=TS2plusBadEG_OpSet label="Betriebsart soll" mappings=[1="Komf",2="Stby",3="N8",4="Frost"]
                }
Der Block ist für alle Räume identisch bis auf den Namensteil der Items, der raumspezifisch ist. Das wäre im Beispiel "BadEG", welches praktischerweise exakt untereinander steht. In VSCode kann man mit <Umschalt-Strg-Alt>+ <Cursor> mehrere Zeilen gleichzeitig editieren, dabei werden also alle Tastendrücke in allen markierten Zeilen ausgeführt, also löschen des Namens und Schreiben des Namens.
Wie erwähnt taucht der Bereich zweimal in der Sitemap auf, das sind also 2*6*9 Zeilen Code innerhalb weniger Sekunden, nachdem das einmal für eine Steuerung angelegt wurde.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

newhab
Beiträge: 18
Registriert: 5. Dez 2020 16:56
Answers: 0

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von newhab »

Ja.. Das leuchtet ein..
würde dann auch nur die Gruppen nehmen, die ich komplett an- oder aus-blenden würde..
der Rest wird Stück für Stück angelegt.
Meine Anfang ist auch gemacht und es zeichnet sich tatsächlich ähnlich Strukturen ab..
Ich Danke dir für deinen Tip..!! Saubere Arbeit zahlt sich dann wieder aus ...

auch wenn es eventuell nicht mehr ganz zum Thema passt..
Würde gerne noch eine Frage stellen, die Eine Regel betrifft. Es geht um meinen Zähler für die Solarplatten..
dort Zähle ich Ost / West getrennt und auch Tages und Jahres übersicht.. aufzeichnung per (rrd4j)
ich habe nur leider keine Idee, wie ich meinen Zähler (in einem Item) fürs Jahr zurücksetze.. um eine Saubere Jahresübersicht zu bekommen
ein Regel, die einen Wert speichert beim einschalten, habe ich hin bekommen - um z.b. bei einer Steckdose einen Verbrauch pro Einschalten anzuzeigen

Code: Alles auswählen

rule "SD2 Verbrauchsdaten "
  when 
    Item SD2_on changed from OFF to ON
  then
    SD2_kwh_save.postUpdate(SD2_Energie.state)
    SD2_kwh_akt.postUpdate(0.0)
end
sowas würde ich einmal im Jahr anwenden, für den Energiezähler Solar
soo zusagen " when Year changed - then...

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

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von udo1toni »

Na, das einfachste wäre ein Time cron Trigger:

Code: Alles auswählen

rule "reset zu Jahresbeginn"
when
    Time cron "5 0 0 1 1 ?" // um 00:00:05 Uhr am 1.1. jeden Jahres
then
    // hier Code zum Zurücksetzen des Zählers 
    // evtl. zusammen mit Code zum vorherigen Retten 
    // des Zählerstands in ein anders Item
end
Die 5 Sekunden sind nur, damit der cron-Job nicht auf der vollen Minute läuft. Man könnte den Job auch irgendwann vor Sonnenaufgang ausführen, da es ja um Photovoltaik geht. ;)
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

newhab
Beiträge: 18
Registriert: 5. Dez 2020 16:56
Answers: 0

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von newhab »

Oh... achsoo..
so einfach ist Das... :idea:
Dieses verflickste Time cron
muss ich mich auch noch mit beschäftigen
Danke Dir auch dafür, werde mich mal ran setzten und im neuen Jahr berichten ob es geklappt hat.. ;-)
Ansonsten schonmal schöne Weihnachten..
und kopliment an diese Seite.. - findet man viel Hilfen und wird auch geholfen... :mrgreen:

newhab
Beiträge: 18
Registriert: 5. Dez 2020 16:56
Answers: 0

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von newhab »

War so uffgerecht - musste ich doch noch bissel probieren.. :lol:

hab mal was zusammengebaut und mit einer anderen Zeit ausgelöst, scheint erstmal zu funktioniern
siehst du noch irgend welche bedenken?!?

Code: Alles auswählen

rule "reset zu Jahresbeginn"
when
    Time cron "5 0 0 1 1 ?" // um 00:00:05 Uhr am 1.1. jeden Jahres
then
    //alte Zählerstand
     EnergieGesamtSave.postUpdate(EnergieGesamt.state)
     //zurückgesetzt für dieses Jahr
     EnergieGesamtYear.postUpdate(0.0)
end



rule "reset Gesamt zu Jahresbeginn"
  when 
    Item EnergieGesamt changed
  then
    EnergieGesamtYear.postUpdate((EnergieGesamt.state as Number) - (EnergieGesamtSave.state as Number))
end
Wollte eigentlich die berechnung der Jahresleistung genau so berechnen, wie die Tagesleistung

Code: Alles auswählen

Energie11Day.postUpdate(Energie11.deltaSince(now.withTimeAtStartOfDay) as Number)
aber "StartOfYear" wäre ja auch zu einfach gewesen... :roll:

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

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von udo1toni »

Wenn die Historie so weit zurück reicht, könntest Du einfach ein (new DateTimeType(year,1,1,0,0)) verwenden wobei year das vierstellige Jahr ist.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

newhab
Beiträge: 18
Registriert: 5. Dez 2020 16:56
Answers: 0

Re: Gruppenteilnehmer Ausblenden, wenn Offline

Beitrag von newhab »

Hallo und Gesundes neues Jahr noch
Wollte nur der vollständigkeit wegen bescheid sagen.. die Regel hat mit Jahreswechsel funktioniert..!
Vielen dank dafür :mrgreen:

Antworten