Widget "Post ist da"

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
atk69
Beiträge: 102
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Widget "Post ist da"

Beitrag von atk69 »

Hallo zusammen,
irgendwie stelle ich mich mal wieder etwas dumm an ;) :
Ich brauche ein Widget, dass mir den Briefkastenstatus anzeigt.
Dazu habe ich einen IR-Sensor (MQTT) im Briefkasten, der das auch wunderbar macht.
Allerdings soll er sich nicht selbst zurückstellen, sonder per Button resettet werden.
Den Code für die Anzeige des Sensors habe ich schon, es fehlt "einfach" nur , dass der Status bis zum reset bleibt.
Bringt ja nix, wenn die Anzeige nur ein paar Sekunden da ist.

Code: Alles auswählen

uid: Post_da
tags: []
props:
  parameters:
    - context: item
      label: IR_Sensor1_IR Item
      name: IR_Sensor1_IR Item
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 21, 2026, 7:20:00 PM
component: f7-card
config:
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        class: '=(items.IR_Sensor1_IR.state === "true") ? "blink-active" : ""'
        icon: '=(items.IR_Sensor1_IR.state === "false") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items.IR_Sensor1_IR.state === "true") ? "green" : "red"'
          margin-left: 20px
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items.IR_Sensor1_IR.state === "true") ? "Post da" : "Keine Post"'
Gruss
Andreas
and IT works ;)

Harka
Beiträge: 596
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Widget "Post ist da"

Beitrag von Harka »

Moin,
Du musst dafür noch eine Aktion mit 'actionCommand: "false" 'einbauen. Hier auf den Icon (Achtung - Item ist variabel gemacht)

Code: Alles auswählen

uid: Post_da
tags: []
props:
  parameters:
    - context: item
      label: item
      name: Sensor_Item
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 21, 2026, 9:03:14 PM
component: f7-card
config:
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        class: '=(items[props.Sensor_Item].state === "true") ? "blink-active" : ""'
        icon: '=(items[props.Sensor_Item].state === "false") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items[props.Sensor_Item].state === "true") ? "green" : "red"'
          margin-left: 20px
        actionItem: =(props.Sensor_Item)
        actionCommand: "false"
        action: command
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items[props.Sensor_Item].state === "true") ? "Post da" : "Keine Post"'

atk69
Beiträge: 102
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Re: Widget "Post ist da"

Beitrag von atk69 »

Vielen Dank Harka.
allerdings funktioniert es nicht.
Code sieht nun so aus:

Code: Alles auswählen

uid: Post_da
tags: []
props:
  parameters:
    - context: item
      label: IR_Sensor1_IR Item
      name: IR_Sensor1_IR Item
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 21, 2026, 9:03:14 PM
component: f7-card
config:
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        class: '=(items[props.IR_Sensor1_IR_Item].state === "true") ? "blink-active" : ""'
        icon: '=(items[props.IR_Sensor1_IR_Item].state === "false") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items[props.IR_Sensor1_IR_Item].state === "true") ? "green" : "red"'
          margin-left: 20px
        actionItem: =(props.IR_Sensor1_IR_Item)
        actionCommand: "false"
        action: command
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items[props.IR_Sensor1_IR_Item].state === "true") ? "Post da" : "Keine Post"'
sollte doch so korrekt sein ? :roll:
Hat sich nichts verändert. Er zeigt immer noch nur kurz an.
and IT works ;)

Harka
Beiträge: 596
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Widget "Post ist da"

Beitrag von Harka »

Hast Du auf der Seite im Edit-Modus für das Feld unter Configure_Cell das Item ausgewählt? Kommt im Log der Befehl false an?

Benutzeravatar
peter-pan
Beiträge: 2852
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Widget "Post ist da"

Beitrag von peter-pan »

Mal abgesehen, davon, dass das Icon nicht blinkt, hätte ich eine Variante anzubieten.

Du brauchst ja eine Schalter (Dummy) mit dem du den Postkasten "entleerst".
eine kleine Regel würde dieses Problem beheben.

.rules

Code: Alles auswählen

rule "Test Reed"
  when
    Item snzb03_01_occupancy changed from OFF to ON   // Das ist dein Reed-Kontakt

  then
    Dummy_11.sendCommand(ON)   //Das ist der Dummy-Schalter
 end
Dazu brauchst du noch das Dummy-Item:
.items

Code: Alles auswählen

Switch                      Dummy_11                  "Testschalter Dummy_11 [%s]"                                   (gPower1)              { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Den Schalter musst du natürlich auch in ein Widget packen oder du baust ihn in dein Custom-Widget ein.

Dein Widget würde dann etwa so aussehen (ohne Schalter)

Code: Alles auswählen

uid: Post_da
tags: []
props:
  parameters:
    - context: item
      label: item
      name: Sensor_Item
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 22, 2026, 4:05:14 PM
component: f7-card
config:
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        class: '=(items[props.Sensor_Item].state === "ON") ? "blink-active" : ""'
        icon: '=(items[props.Sensor_Item].state === "OFF") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items[props.Sensor_Item].state === "ON") ? "green" : "red"'
          margin-left: 20px
        actionItem: =(props.Sensor_Item)
        actionCommand: "false"
        action: command
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items[props.Sensor_Item].state === "ON") ? "Post da" : "Keine Post"'
Als Item müsstest du dann den Dummy eingeben.
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.3 openhabian
(Test openHAB 5.2.0 Build #5140 - snapshot)

Benutzeravatar
peter-pan
Beiträge: 2852
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Widget "Post ist da"

Beitrag von peter-pan »

Hier noch "ein Schnellschuss" mit eingebautem Schalter

Code: Alles auswählen

uid: Post_da
tags: []
props:
  parameters:
    - context: item
      label: item
      name: Sensor_Item
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 22, 2026, 4:45:20 PM
component: f7-card
config:
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        action: command
        actionCommand: "false"
        actionItem: =(props.Sensor_Item)
        class: '=(items[props.Sensor_Item].state === "ON") ? "blink-active" : ""'
        icon: '=(items[props.Sensor_Item].state === "OFF") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items[props.Sensor_Item].state === "ON") ? "green" : "red"'
          margin-left: 20px
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items[props.Sensor_Item].state === "ON") ? "Post da" : "Keine Post"'
    - component: f7-col
      config: {}
      slots:
        default:
          - component: oh-toggle
            config:
              item: =(props.Sensor_Item)
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.3 openhabian
(Test openHAB 5.2.0 Build #5140 - snapshot)

atk69
Beiträge: 102
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Re: Widget "Post ist da"

Beitrag von atk69 »

Hallo peter-pan

habe aus verständnisgründen mal deine Variante probiert.
Das scheint grundlegend zu funktionieren.
Allerdings kommt kein Farbwechsel und kein Textwechsel.
Habe mal ein Video mit den beiden Zuständen angehängt.
Natürlich blinkt da auch nix :( , aber das ist zweitrangig.
Interessant: wenn ich den Zustand manuell per Mausklick ändere, funktioniert alles korrekt (Farbwechsel und text)

Code: Alles auswählen

uid: Post_da
tags: []
props:
  parameters:
    - context: item
      label: item
      name: IR_Sensor1_IR
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 23, 2026, 1:23:47 PM
component: f7-card
config:
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        action: command
        actionCommand: "false"
        actionItem: =(props.IR_Sensor1_IR)
        class: '=(items[props.IR_Sensor1_IR].state === "ON") ? "blink-active" : ""'
        icon: '=(items[props.IR_Sensor1_IR].state === "OFF") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items[props.IR_Sensor1_IR].state === "ON") ? "green" : "red"'
          margin-left: 20px
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items[props.IR_Sensor1_IR].state === "ON") ? "Post da" : "Keine Post"'
    - component: f7-col
      config: {}
      slots:
        default:
          - component: oh-toggle
            config:
              item: =(props.IR_Sensor1_IR)
https://magentacloud.de/s/yJr5m2PK5XAtjeq
Beim Item habe ich true=ON und false=OFF hinzugefügt.

Zudem hatte ich auch noch das Problem mit leeren logs.
Aber das ist ja ein bekannter Fehler bei der leeren org.ops4j.pax.logging.cfg.
and IT works ;)

Benutzeravatar
peter-pan
Beiträge: 2852
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Widget "Post ist da"

Beitrag von peter-pan »

Also Folgendes; du musst natürlich das Dummy Item als "Props" eingeben.

Ich habe die Regel nochmal abgeändert und mit einem "True/False"-Item bearbeitet.
Ich gehe mal davon aus, dass deine Werte über MQTT nach OH kommen. Deshalb hab ich mir das Item(mein Test-Item) nochmal im Original als Thing-Channel angelegt, damit ich dein SetUp "nachahmen" kann.

.things

Code: Alles auswählen

Thing mqtt:topic:danny:snzb0301 "Bewegungs-Sensor SZNB-03-01"  (mqtt:broker:danny )   @ "zigbee2mqtt"
      [ availabilityTopic="zigbee2mqtt/snzb_03_01/availability", transformationPattern="JSONPATH:$.state", payloadNotAvailable="offline", payloadAvailable= "online" ] 
    {
    Channels:
        Type number  : voltage      "SNZB-03-01 Spannung"                 [ stateTopic="zigbee2mqtt/snzb_03_01/voltage", unit="mV" ]
        Type number  : battery      "SNZB-03-01 Batterie"                 [ stateTopic="zigbee2mqtt/snzb_03_01/battery", unit="%" ] 
        Type contact : batterylow   "SNZB-03-01 Batterie Niedrig"         [ stateTopic="zigbee2mqtt/snzb_03_01/battery_low", on="true", off="false" ] 
        Type switch  : occupancy    "SNZB-03-01 Bewegung"                 [ stateTopic="zigbee2mqtt/snzb_03_01/occupancy", on="true", off="false" ]
        Type contact : tamper       "SNZB-03-01 Sabotage"                 [ stateTopic="zigbee2mqtt/snzb_03_01/tamper", on="true", off="false" ]
        Type number  : linkquality  "SNZB-03-01 Empfangsstäreke LQI"      [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.linkquality", unit="lqi" ]
        Type switch  : reachable    "SNZB-03-01 Reachable"                [ stateTopic="zigbee2mqtt/snzb_03_01/availability", transformationPattern="JSONPATH:$.state", on="online", off="offline" ]
        Type string  : octest       "SNZB-03-01 Bewegung-Test"            [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.occupancy" ]  // Das ist nur für Test

    }
Die entsprechenden Kanäle sind "occupancy" und als Test "octest". "octest" gibt den original Wert zurück. Die beiden Channel sind unterschiedlich. Der eine ist ein Switch- und der andere ist ein String-Channel. Ich bin da zwar kein Experte, aber das hat wohl was mit dem "Enum"-Wert (true/false) zu tun.
die Items dazu sehen so aus.
.items

Code: Alles auswählen

Switch                      snzb03_01_occupancy          "Bewegung SNZB-03 01 Bewegung"                  <motion>                (gsnzb03_01,gMoSo)                   ["Presence","Status"]                       { channel="mqtt:topic:danny:snzb0301:occupancy" }     
String                      snzb03_01_octest             "Bewegung SNZB-03 01 Test  [%s]"                <motion>                (gsnzb03_01)                         ["Presence","Status"]                       { channel="mqtt:topic:danny:snzb0301:octest" }     
Schau mal deine Item-Types auf diese Bedingungen hin an.

Die Regel sieht so aus, wenn ich einen True/False-Trigger (snzb03_01_octest ) verwende.

Code: Alles auswählen

rule "Test Reed"
  when
    Item snzb03_01_octest changed from "false" to "true"   // Das ist dein Reed-Kontakt

  then
    Dummy_11.sendCommand(ON)   //Das ist der Dummy-Schalter
 end
Das Widget hat jetzt folgenden Yaml-Code:

Code: Alles auswählen

uid: Post_da2
tags: []
props:
  parameters:
    - context: item
      label: Dummy Item
      name: dummy
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 23, 2026, 5:45:22 PM
component: f7-card
config:
  style:
    background: linear-gradient(to top right,#FA8072 30%,#00FFFF 60%)
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        action: command
        actionCommand: "false"
        actionItem: =(props.dummy)
        class: '=(items[props.dummy].state === "ON") ? "blink-active" : ""'
        icon: '=(items[props.dummy].state === "OFF") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        size: 80
        style:
          color: '=(items[props.dummy].state === "ON") ? "green" : "red"'
          margin-left: 20px
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 20px
        text: '=(items[props.dummy].state === "ON") ? "Post da" : "Keine Post"'
    - component: f7-col
      config: {}
      slots:
        default:
          - component: oh-toggle
            config:
              color: blue
              item: =(props.dummy)
Und das Ganze als Snapshot:
Eingabe des Dummy-Items
input.jpg
Keine Post
keinePost.jpg
Post ist da
PostDa.jpg
Den Hintergrund kannst du ja wieder rausnehmen oder ändern, wenn er dir nicht gefällt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.3 openhabian
(Test openHAB 5.2.0 Build #5140 - snapshot)

atk69
Beiträge: 102
Registriert: 15. Jan 2019 19:07
Answers: 1
Wohnort: Weil am Rhein

Re: Widget "Post ist da"

Beitrag von atk69 »

Danke peter-pan
du hast offensichtlich gemerkt, dass ich es nicht so mit den scripts/Definitionen hab :roll:
Habe jetzt mal alles entfernt was den Sensor betrifft und es es 1:1 mit deinen Angaben umgesetzt.
Verändert hat sich nicht viel:
Die Anzeige ist die gleiche. Allerdings kann ich auch nicht das item "Dummy" finden/auswählen.
hier nochmal meine files:
Dummy.items

Code: Alles auswählen

"Dummy_11 [%s]"                                (gPower1)              { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Switch                      SNZB-03-1_IR_occupancy          "Bewegung SNZB-03-1 Bewegung"                  <motion>                (SNZB-03-1,gMoSo)                   ["Presence","Status"]                       { channel="mqtt:topic:b4f2b16ffc:SNZB-03-1:occupancy" }     
String                      SNZB-03-1_IR_octest             "Bewegung SNZB-03-1 Test  [%s]"                <motion>                (SNZB-03-1)                         ["Presence","Status"]                       { channel="mqtt:topic:b4f2b16ffc:SNZB-03-1:octest" }     
Post.things

Code: Alles auswählen

Thing mqtt:topic:b4f2b16ffc:SNZB-03-1 "Sensor Briefkasten"  (mqtt:broker:b4f2b16ffc )   @ "zigbee2mqtt"
      [ availabilityTopic="zigbee2mqtt/SNZB-03-1/availability", transformationPattern="JSONPATH:$.state", payloadNotAvailable="offline", payloadAvailable= "online" ] 
    {
    Channels:        
        Type number  : battery      "SNZB-03-1 Batterie"                 [ stateTopic="zigbee2mqtt/SNZB-03-1/battery", unit="%" ] 
        Type switch  : occupancy    "SNZB-03-1 Bewegung"                 [ stateTopic="zigbee2mqtt/SNZB-03-1/occupancy", ON="true", OFF="false" ]
        Type string  : octest       "SNZB-03-1 Bewegung-Test"            [ stateTopic="zigbee2mqtt/SNZB-03-1", transformationPattern="JSONPATH:$.occupancy" ]  // Das ist nur für Test

    }
Post.rules

Code: Alles auswählen

rule "IR_Post"
  when
    Item SNZB-03-1_occupancy changed from "false" to "true"   // Das ist dein Reed-Kontakt

  then
    Dummy_11.sendCommand(ON)   //Das ist der Dummy-Schalter
 end
Der grund für das fehlende Dummy-item:

Code: Alles auswählen

2026-03-23 20:06:09.597 [WARN ] [el.core.internal.ModelRepositoryImpl] - DSL model 'Dummy.items' has errors, therefore ignoring it: Item name "SNZB-03-1_IR_occupancy" is invalid. It must begin with a letter or underscore followed by alphanumeric characters and underscores, and must not contain any other symbols.
Item name "SNZB-03-1_IR_octest" is invalid. It must begin with a letter or underscore followed by alphanumeric characters and underscores, and must not contain any other symbols.
2026-03-23 20:06:09.597 [INFO ] [el.core.internal.ModelRepositoryImpl] - Unloading DSL model 'Dummy.items'
Vielen Dank dafür, dass du dir das mit einem DAU antust :oops:
Gruss
Andreas
and IT works ;)

Benutzeravatar
peter-pan
Beiträge: 2852
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Widget "Post ist da"

Beitrag von peter-pan »

atk69 hat geschrieben: Heute 20:18 du hast offensichtlich gemerkt, dass ich es nicht so mit den scripts/Definitionen hab :roll:
Das passt schon. Ich mach das meiste auch per "try and error" und mit Hilfe dieses Forums.

Bei dem Item Dummy_11 (oder wie immer du das auch nennen willst) fehlt der Item-Type "Switch" Du musst auch nicht unbedingt, die Gruppenzuordnung, das Mapping, etc. nachziehen. Wahrschewinlich hst du auh kein textbasiertes SetUp, sondern legst deine Items per Main-UI an.

Das sieht dann so aus:
dummy55.jpg
Das war's dann eigentlich schon. Du musst dann nur die Text-Rule anpassen oder dir eine über die Main-UI erstellen.

Die Text-Rule sieht dann so aus, wenn du das Item (z.B: Dummy_55) angelegt hast.
.rules

Code: Alles auswählen

rule "Test Reed"
  when
    Item IR_Sensor1_IR changed from "false" to "true"   // Das ist dein Reed-Kontakt

  then
    Dummy_55.sendCommand(ON)   //Das ist der Dummy-Schalter
 end
Ich gehe dabei davon aus, dass dein Item "IR_Sensor1_IR" auch als String-Type angelegt ist und die Status "true" und "false" annimmt.

Ich hab das Widget auch noch ein bisschen "gepimpt".
haus.jpg
Und der Widget-code sieht jetzt so aus.

Code: Alles auswählen

uid: Post_da2
tags: []
props:
  parameters:
    - context: item
      label: Dummy Item
      name: dummy
      required: true
      type: TEXT
    - label: Titel
      name: title
      required: false
  parameterGroups: []
timestamp: Mar 23, 2026, 8:17:46 PM
component: f7-card
config:
  style:
    background: linear-gradient(to top right,#FA8072 30%,#00FFFF 60%)
  stylesheet: |
    @keyframes blinker {
      50% { opacity: 0; }
    } .blink-active {
      animation: blinker 1s linear infinite;
    }
  title: =props.title
slots:
  default:
    - component: oh-icon
      config:
        action: command
        actionCommand: "false"
        actionItem: =(props.dummy)
        class: '=(items[props.dummy].state === "ON") ? "blink-active" : ""'
        icon: '=(items[props.dummy].state === "OFF") ?
          "f7:exclamationmark_triangle_fill" : "f7:house"'
        height: 80
        style:
          color: '=(items[props.dummy].state === "ON") ? "green" : "red"'
          margin-left: 150px
    - component: Label
      config:
        style:
          font-weight: bold
          margin-left: 150px
        text: '=(items[props.dummy].state === "ON") ? "Post da" : "Keine Post"'
    - component: f7-col
      config: {}
      slots:
        default:
          - component: oh-toggle
            config:
              color: blue
              item: =(props.dummy)
              style:
                margin-left: 150px
Aber wie gesagt. Du brauchst eigentlich nur das Dummy-Item und die Regel. Das Dummy-Item gibst du dann im Widget ein.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.3 openhabian
(Test openHAB 5.2.0 Build #5140 - snapshot)

Antworten