OH3-Beispiel: Thermostat-Widget

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

harteknut
Beiträge: 231
Registriert: 3. Dez 2019 08:21
Answers: 8

OH3-Beispiel: Thermostat-Widget

Beitrag von harteknut »

Hallo zusammen,

da es noch so wenig Beispiele für Widgets gibt, hier mein Thermostat-Widget.
Ich nutze vier Items:
- aktuelle Raumtemperatur (Number, in °C)
- Setpoint-Temperatur (Number, in °C)
- Status des Heizventils (Switch, ON/OFF)
- Betriebsart (String, 1=auto, 2=aus, 3=an)
So sieht das Widget aus:
thermostat.png
Folgende Funktionen:
- Klick auf die Raumtemperatur öffnet einen Analysegraphen
- Farbe des Thermometers neben der Termperatur zeigt an, ob gerade geheizt wird oder nicht.
- Klick auf "Betriebsart" öffnet ein Popup mit den drei möglichen Parametern
- Farbe des Zahnrads zeigt an, wenn gerade nicht "auto" eingestellt ist.
- Slider stellt den Setpoint ein.

Hier der passende Code für das Thermostat-Widget:

Code: Alles auswählen

uid: Raumthermostat Widget
tags: []
props:
  parameters:
    - description: Thermostat to control
      label: Description
      name: title
      required: false
      type: TEXT
    - context: item
      description: Das Item für die Betriebsart
      label: Item Betriebsart
      name: item_betriebsart
      required: true
      type: TEXT
    - context: item
      description: Das Item für die (gemessene) Ist-Temperatur
      label: Ist-Temperatur
      name: item_temp_av
      required: true
      type: TEXT
    - context: item
      description: Das Item für den Setpoint-Temperatur
      label: Setpoint-Temperatur
      name: item_temp_tar
      required: true
      type: TEXT
    - context: item
      description: Das Item Heizungsrelais
      label: Heizungsrelais
      name: item_hv_relais
      required: true
      type: TEXT
timestamp: Jan 27, 2021, 4:23:18 PM
component: f7-card
slots:
  content:
    - component: oh-label-card
      config:
        trendItem: =(props.item_temp_av)
        trendLineColor: gray
        action: analyzer
        actionAnalyzerItems: =[props.item_temp_av, props.item_temp_tar, props.item_hv_relais]
        item: =(props.item_temp_av)
        title: =(props.title)
        icon: f7:thermometer
        iconColor: "=items[props.item_hv_relais].state === 'ON' ? 'red' : 'white'"
    - component: oh-list-card
      config: {}
      slots:
        default:
          - component: oh-label-item
            config:
              item: =(props.item_betriebsart)
              title: Betriebsart
              action: popup
              actionModal: widget:Heizungssteuerung Widget
              actionModalConfig:
                item: =(props.item_betriebsart)
              icon: f7:gear
              iconColor: "=(items[props.item_betriebsart].state === '2') ? 'blue' : (items[props.item_betriebsart].state === '3') ? 'red' : 'white'"
    - component: oh-slider-card
      config:
        item: =(props.item_temp_tar)
        min: 15
        scaleSteps: 5
        max: 25
        scale: true
        step: 0.2
        label: true
        scaleSubSteps: 5
        footer: =(items[props.item_temp_tar].state)
Das benötigte Widget "Heizungssteuerung" habe ich hier beschrieben.

(Noch ein Hinweis: Wenn man das Widget auf einer Seite einbaut, muss man alle vier Items und den Titel auswählen. Bei zehn Räumen kann das lästig sein, daher lässt sich das auch schlauer aufbauen: Wer die vier Items immer nach der gleichen Syntax mit den gleichen Suffixen aufbaut (z.B. <Raumname>_Solltemperatur, <Raumname> _Isttemperatur, ...) kann die Eingabe auf ein einziges Item (Group-Item <Raumname>) reduzieren, wenn man den Code ein bisschen umschreibt. War mir aber zu aufwändig & zu unflexibel.)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von Detlef »

Hallo

Klasse Arbeit !!! gefällt mir sehr gut.

Das baue ich mir in der OH3 ein, wenn möglich.
Mit freundlichen Grüße aus Recklinghausen

KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Wohnort: Werl
Kontaktdaten:

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von KlausGünther »

Es gib im englischsprachigen Forum auch noch einen guten Thread für ein Thermostat:

https://community.openhab.org/t/oh3-hea ... css/115107

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von Detlef »

Hallo
habe mich für die deine Thermostat Widget entschieden.
Sind prima am Handy und auf der Seite zu schalten.
Brauche jetzt nur noch das "offene Tür " und Batterie-Symbol im Bereich Betriebsart.
Sehr schön ist wenn man auf Temperatur klickt, dass dann " Temperaturen Ist/Soll " sowie der "Heizmodus" angezeigt bekommt.
Schöner vergleich.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit freundlichen Grüße aus Recklinghausen

Frankinho
Beiträge: 23
Registriert: 15. Mai 2017 12:53

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von Frankinho »

Guten Morgen,

mir fehlt leider noch das Wissen, dieses Widget zu benutzen / einzubauen.

Habt ihr dazu bitte eine kleine Anleitung.

Danke
Frank

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von Detlef »

Hallo
Bei mir sehen die nun so aus. Funktioniert alles sehr gut.



Wenn du noch Hilfe brauchst dann melde dich bei mir!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit freundlichen Grüße aus Recklinghausen

knauff
Beiträge: 37
Registriert: 15. Mär 2021 11:18

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von knauff »

Hallo Detlef,

kannst Du mir den Code zur Verfügung stellen. Ich fange grade erst mit OH an und bin noch nicht so weit.

VG Matthias.
Detlef hat geschrieben: 2. Mai 2021 12:44 Hallo
Bei mir sehen die nun so aus. Funktioniert alles sehr gut.



Wenn du noch Hilfe brauchst dann melde dich bei mir!

knauff
Beiträge: 37
Registriert: 15. Mär 2021 11:18

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von knauff »

Hi,

was ist den das "Heizungsrelais" ?

VG Matthias.
harteknut hat geschrieben: 27. Jan 2021 17:21 Hallo zusammen,

da es noch so wenig Beispiele für Widgets gibt, hier mein Thermostat-Widget.
Ich nutze vier Items:
- aktuelle Raumtemperatur (Number, in °C)
- Setpoint-Temperatur (Number, in °C)
- Status des Heizventils (Switch, ON/OFF)
- Betriebsart (String, 1=auto, 2=aus, 3=an)
So sieht das Widget aus:
thermostat.png

Folgende Funktionen:
- Klick auf die Raumtemperatur öffnet einen Analysegraphen
- Farbe des Thermometers neben der Termperatur zeigt an, ob gerade geheizt wird oder nicht.
- Klick auf "Betriebsart" öffnet ein Popup mit den drei möglichen Parametern
- Farbe des Zahnrads zeigt an, wenn gerade nicht "auto" eingestellt ist.
- Slider stellt den Setpoint ein.

Hier der passende Code für das Thermostat-Widget:

Code: Alles auswählen

uid: Raumthermostat Widget
tags: []
props:
  parameters:
    - description: Thermostat to control
      label: Description
      name: title
      required: false
      type: TEXT
    - context: item
      description: Das Item für die Betriebsart
      label: Item Betriebsart
      name: item_betriebsart
      required: true
      type: TEXT
    - context: item
      description: Das Item für die (gemessene) Ist-Temperatur
      label: Ist-Temperatur
      name: item_temp_av
      required: true
      type: TEXT
    - context: item
      description: Das Item für den Setpoint-Temperatur
      label: Setpoint-Temperatur
      name: item_temp_tar
      required: true
      type: TEXT
    - context: item
      description: Das Item Heizungsrelais
      label: Heizungsrelais
      name: item_hv_relais
      required: true
      type: TEXT
timestamp: Jan 27, 2021, 4:23:18 PM
component: f7-card
slots:
  content:
    - component: oh-label-card
      config:
        trendItem: =(props.item_temp_av)
        trendLineColor: gray
        action: analyzer
        actionAnalyzerItems: =[props.item_temp_av, props.item_temp_tar, props.item_hv_relais]
        item: =(props.item_temp_av)
        title: =(props.title)
        icon: f7:thermometer
        iconColor: "=items[props.item_hv_relais].state === 'ON' ? 'red' : 'white'"
    - component: oh-list-card
      config: {}
      slots:
        default:
          - component: oh-label-item
            config:
              item: =(props.item_betriebsart)
              title: Betriebsart
              action: popup
              actionModal: widget:Heizungssteuerung Widget
              actionModalConfig:
                item: =(props.item_betriebsart)
              icon: f7:gear
              iconColor: "=(items[props.item_betriebsart].state === '2') ? 'blue' : (items[props.item_betriebsart].state === '3') ? 'red' : 'white'"
    - component: oh-slider-card
      config:
        item: =(props.item_temp_tar)
        min: 15
        scaleSteps: 5
        max: 25
        scale: true
        step: 0.2
        label: true
        scaleSubSteps: 5
        footer: =(items[props.item_temp_tar].state)
Das benötigte Widget "Heizungssteuerung" habe ich hier beschrieben.

(Noch ein Hinweis: Wenn man das Widget auf einer Seite einbaut, muss man alle vier Items und den Titel auswählen. Bei zehn Räumen kann das lästig sein, daher lässt sich das auch schlauer aufbauen: Wer die vier Items immer nach der gleichen Syntax mit den gleichen Suffixen aufbaut (z.B. <Raumname>_Solltemperatur, <Raumname> _Isttemperatur, ...) kann die Eingabe auf ein einziges Item (Group-Item <Raumname>) reduzieren, wenn man den Code ein bisschen umschreibt. War mir aber zu aufwändig & zu unflexibel.)

Benutzeravatar
Detlef
Beiträge: 189
Registriert: 11. Dez 2019 21:50
Answers: 1
Wohnort: Recklinghausen
Kontaktdaten:

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von Detlef »

Hallo
also unter" Entwicker Toos " _ Widgets den Code eingeben und dann auf einer Seite einbauen.

Code: Alles auswählen

uid: Heizung RaumthermostatSchlafbereich
tags: []
props:
  parameters:
    - description: Thermostat to control
      label: Description
      name: title
      required: false
      type: TEXT
    - context: item
      description: Das Item für die Betriebsart
      label: Item Betriebsart
      name: item_betriebsart
      required: true
      type: TEXT
    - context: item
      description: Das Item für die (gemessene) Ist-Temperatur
      label: Ist-Temperatur
      name: item_temp_av
      required: true
      type: TEXT
    - context: item
      description: Das Item für den Setpoint-Temperatur
      label: Setpoint-Temperatur
      name: item_temp_tar
      required: true
      type: TEXT
    - context: item
      description: Das Item für Door
      label: Item_Door
      name: door
      required: true
      type: TEXT
    - context: item
      description: Das Item für Batterie
      label: Item_Batterie
      name: battery
      required: true
      type: TEXT
    - context: item
      description: Das Item Heizungsrelais
      label: Heizungsrelais
      name: item_hv_relais
      required: true
      type: TEXT
timestamp: Feb 23, 2021, 4:40:06 PM
component: f7-card
slots:
  content:
    - component: oh-label-card
      config:
        trendItem: =(props.item_temp_av)
        trendLineColor: gray
        action: analyzer
        actionAnalyzerItems: =[props.item_temp_av, props.item_temp_tar, props.item_hv_relais]
        item: =(props.item_temp_av)
        title: =(props.title)
        icon: f7:thermometer
        iconColor: "=items[props.item_hv_relais].state === 'ON' ? 'red' : 'white'"
    - component: oh-list-card
      config: {}
      slots:
        default:
          - component: oh-label-item
            config:
              item: =(props.item_betriebsart)
              action: popup
              actionModal: widget:Heizungssteuerung Widget
              actionModalConfig:
                item: =(props.item_betriebsart)
              icon: f7:gear
              iconColor: "=(items[props.item_betriebsart].state === '10') ? 'blue' : (items[props.item_betriebsart].state === '12') ? 'red' : 'green'"
    - component: oh-Stepper-card
      config:
        item: =(props.item_temp_tar)
        min: 5
        scaleSteps: 1
        max: 25
        scale: true
        step: 1
        label: true
        scaleSubSteps: 5
        icon: f7:gear
    - component: f7-row
      config: {}
      slots:
        default:
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    action: options
                    actionItem: =(props.battery)
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    icon-f7: battery_100
                    iconColor: yellow
                    size: 20
                    text: =items[props.battery].state
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      font-size: 8px
                      height: auto
          - component: f7-col
            slots:
              default:
                - component: oh-button
                  config:
                    action: options
                    actionItem: =(props.door).state
                    class:
                      - margin
                      - display-flex
                      - flex-direction-column
                    icon-f7: arrow_2_squarepath
                    iconColor: green
                    size: 20
                    text: =items[props.door].state
                    style:
                      --f7-button-bg-color: transparent
                      --f7-button-hover-bg-color: transparent
                      --f7-button-pressed-bg-color: transparent
                      font-size: 8px
                      height: auto
Das Heizungsrelais ist der ein ausschalte. Ich habe Z wave Thermostate und Release für die Fußbodenheizung, sowie einen Thermostaten der selbständig die Steuerung übernimmt und ein und aus Schaltet. Ein Item ( Dummy ist die Betriebssteuerung).
Bitt aber noch selber recht neu in OH3. In einen anderen Code ist zusätzlich noch der Batteriezustand zu sehen.
Ich kämpfe aber gerade mit den Claud Anbindung. bei mir geht kein APP mehr.
Grüße
Mit freundlichen Grüße aus Recklinghausen

harteknut
Beiträge: 231
Registriert: 3. Dez 2019 08:21
Answers: 8

Re: OH3-Beispiel: Thermostat-Widget

Beitrag von harteknut »

Bin spät dran, ist die Frage nach dem Heizungsrelais noch aktuell?
Das ist quasi der Ventilschalter (hängt alles auf mehreren Relaisblöcken, daher der Name).

Antworten