Seite 1 von 2

Main UI - Selection Item für Wohnraumlüftung

Verfasst: 12. Feb 2021 19:36
von int5749
Hallo zusammen,

ich habe derzeit ein Selection Item um meinen Lüftungsaktor mit einem Item zu schalten, anstatt 2 einzelne Schalter. Der Lüftungsaktor hat entsprechend gegeneinander verriegelte Kanäle.

Items

Code: Alles auswählen

Group				Ventilation
Group eVentilation	"Umluft"	<fan>	["HVAC"]	//Semantic
Number Ventilator	"Lüftung Stufe [%d]"	<fan>	(eVentilation)	["Point"]	//added to Semantic
Switch VentAktor1	"Lüftung Stufe 1"	(Ventilation)	{channel="knx:device:bridge:ABBLF:ch1"} //Level 1 and OFF
Switch VentAktor2	"Lüftung Stufe 2"	(Ventilation)	{channel="knx:device:bridge:ABB:LFch2"} //Level 2 and OFF
Rule

Code: Alles auswählen

rule "update Ventilator"
when
	Member of Ventilation changed
then
    if (VentAktor1.state==ON) {
        Ventilator.postUpdate(1)
    } else if (VentAktor2.state==ON) {
        Ventilator.postUpdate(2)
    } else {
        Ventilator.postUpdate(0)
	}
end
Sitemap

Code: Alles auswählen

Switch item=Ventilator mappings=[0="OFF",1="1",2="2"]
Nun versuche ich dies als Objekt in meiner Übersicht der Main UI einzubauen, verzweifle aber an den Items :-(

Habt ihr so etwas schon einmal umgesetzt? Leider findet meinGoogle nichts :-/

Viele Grüße

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 14. Feb 2021 14:13
von merlindata
In der Sitemap nicht "Switch" sondern "Selection" ;-)

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 14. Feb 2021 14:16
von int5749
merlindata hat geschrieben: 14. Feb 2021 14:13 In der Sitemap nicht "Switch" sondern "Selection" ;-)
Danke, aber ich möchte dies ja nicht in der Sitemap darstellen, bzw. dort habe ich das bereits und funktioniert auch als Switch mit den Mappings.
Dort ist es dann alles drei nebeneinander, bei einer Selection wäre es dann als drop-down.

Ich möchte dies ja in den OH3 Pages darstellen. Entweder als Selection oder gerne auch als Mapping Item. So das ich die drei Stufen in einem Item abgebildet habe :)

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 14. Feb 2021 15:32
von udo1toni
Da schaltest Du aber nichts. Du hast da nur eine Rückmeldung.

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 14. Feb 2021 17:38
von int5749
udo1toni hat geschrieben: 14. Feb 2021 15:32 Da schaltest Du aber nichts. Du hast da nur eine Rückmeldung.
:?: :?: :?:

Aus meinen Pages (hier Standorte und dann die Küche)
kueche.PNG
Und dort versuche ich eine Zeile für die Umluftsteuerung einzubauen (OFF - Stufe 1 - Stufe 2)

In meiner Sitemap sieht dies so aus
lueftung.PNG
Viele Grüße

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 14. Feb 2021 23:32
von udo1toni
Deine Rule triggert auf ein change eines Members der Gruppe Ventilation, in der die beiden Switch Items VentAktor1 und VentAktor2 zusammengefasst sind.
Die Rule wertet die beiden Aktoren aus und wählt in Abhängigkeit der verschiedenen Schaltstellungen einen der Werte 0 1 oder 2 für das Number Item Ventilator.
Du hast jedoch keine Rule (gezeigt?), welche in Abhängigkeit des Number Items Ventilator die beiden Aktorkanäle wie gewünscht schaltet.

Für die gewünschte Darstellung habe ich momentan keine Idee (was natürlich daran liegt, dass ich mich nicht intensiv mit OH3 auseinander setze ;) )
Eine Möglichkeit wäre die Stepper Card. Man kann Minimum, Maximum und Schrittweite bestimmen und erhält zwei Knöpfe für + und - sowie die Anzeige der Stufe.

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 15. Feb 2021 13:03
von int5749
udo1toni hat geschrieben: 14. Feb 2021 23:32 Du hast jedoch keine Rule (gezeigt?), welche in Abhängigkeit des Number Items Ventilator die beiden Aktorkanäle wie gewünscht schaltet.
Stimmt, Mist. Dachte es wäre nur die eine Rule, die ich mitgesendet hatte.
Anbei die fehlende Rule

Code: Alles auswählen

rule "Set Ventilator"
when
    Item Ventilator changed
then
    if ((Ventilator.state as DecimalType).intValue == 0) {
		Ventilation.members.filter(f|(f.state == (ON))).forEach[ v|
			v.sendCommand(OFF)
			logInfo("Ventilation", "{} has been switched off", v.label)
		]
	} else if ((Ventilator.state as DecimalType).intValue == 1) {
		VentAktor1.sendCommand(ON)
		logInfo("Ventilation", "{} has been switched on", VentAktor1.label)
	} else if ((Ventilator.state as DecimalType).intValue == 2) {
		VentAktor2.sendCommand(ON)
		logInfo("Ventilation", "{} has been switched on", VentAktor2.label)
	}
end
Eine Stepper Card wäre eine Option, wobei ich dann ja von 2 erst wieder über 1 müsste um abzuschalten :-/

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 15. Feb 2021 17:22
von udo1toni
Jetzt kommt eine gemeine Frage... Wie ist es denn nun tatsächlich geschaltet? Aktor 1 schaltet Stufe 1, Aktor 2 schaltet Stufe 2, was passiert, wenn beide Aktoren auf ON stehen? Denn Deine Rule kümmert sich nicht darum, zuerst über Stufe 0 alle abzuschalten.

Eine weitere Alternative zur Stepper Card könnte noch eine List Card sein. Du kannst dort "beliebige" Listenpunkte anlegen und "beliebige" Funktionen hinterlegen. In Deinem Fall gäbe es dann drei Listenpunkte, die die Lüfterstufen symbolisieren und jeweils in das gewünschte Item den Wert schreiben.

Sieht dann so aus:
Screenshot 2021-02-15 173110.png

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 15. Feb 2021 19:14
von int5749
udo1toni hat geschrieben: 15. Feb 2021 17:22 Jetzt kommt eine gemeine Frage... Wie ist es denn nun tatsächlich geschaltet? Aktor 1 schaltet Stufe 1, Aktor 2 schaltet Stufe 2, was passiert, wenn beide Aktoren auf ON stehen? Denn Deine Rule kümmert sich nicht darum, zuerst über Stufe 0 alle abzuschalten.
Aber das macht doch der Part

Code: Alles auswählen

   if ((Ventilator.state as DecimalType).intValue == 0) {
		Ventilation.members.filter(f|(f.state == (ON))).forEach[ v|
			v.sendCommand(OFF)
			logInfo("Ventilation", "{} has been switched off", v.label)
		]
Es gibt ja nur 1 Aktor ;-) und es ist entwweder Kanal 1 oder Kanal 2 aktiv, und mit dem o.g. wird der aktive Kanal ermittelt und abgeschaltet. 0 ist somit "schalte aktiven Kanal ab"
udo1toni hat geschrieben: 15. Feb 2021 17:22 Eine weitere Alternative zur Stepper Card könnte noch eine List Card sein. Du kannst dort "beliebige" Listenpunkte anlegen und "beliebige" Funktionen hinterlegen. In Deinem Fall gäbe es dann drei Listenpunkte, die die Lüfterstufen symbolisieren und jeweils in das gewünschte Item den Wert schreiben.
Das schaue ich mir mal an, Danke.

Re: Main UI - Selection Item für Wohnraumlüftung

Verfasst: 15. Feb 2021 21:07
von int5749
Natürlich habe ich die List Card nicht so einfach hinbekommen (OH3 ist leider nichts mehr zum einfach zusammenklickern) :?

Nach ein wenig google habe ich ein Widget gefunden, welches ich für meine Bedürfnisse anpassen konnte.
Ergebnis:
umluft.PNG
Im Prinzip funktioniert dies , aber was mir noch fehlt ist:
  • Anzeige/Hinterlegung des aktiven Items
  • Ein Icon vor dem ganzen, als Lüfter
Code des Widget (falls jemand Interesse hat)

Code: Alles auswählen

uid: Ventilation
tags: []
props:
  parameters:
    - description: Air Circulation Control
      label: Description
      name: Title
      required: false
      type: TEXT
timestamp: Feb 15, 2021, 8:57:17 PM
component: f7-card
config:
  outline: false
  noBorder: true
  padding: false
  noShadow: false
  style:
    --f7-safe-area-right: 0
    --f7-safe-area-left: 0
slots:
  content:
    - component: f7-row
      config:
        class:
          - padding-top
          - padding-bottom
          - padding-right
      slots:
        default:
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    title: Off
                    action: command
                    actionItem: Ventilator
                    actionCommand: "0"
                    iconF7: shield_slash
                    iconColor: black
                    text: Off
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    title: Stufe 1
                    action: command
                    actionItem: Ventilator
                    actionCommand: 1
                    iconF7: shield_lefthalf_fill
                    iconColor: green
                    text: Stufe 1
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    title: Stufe 2
                    action: command
                    actionItem: Ventilator
                    actionCommand: 2
                    iconF7: shield_fill
                    iconColor: green
                    text: Stufe 2

Quelle des Widget