Openhabian 3.2 MQTT und Semantisches Modell

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Openhabian 3.2 MQTT installieren

Beitrag von Boris099 »

OK läuft.
Habe einen Sonoff Touch(Tasmota) eingebunden und den mit dem OH3 MQTT-Broker verbunden.
Inbox enthält automatisch einen Eintrag. Da kann man dann u.a. wählen "add as thing with custom ID" das habe ich gemacht,
und eine andere ID (das scheint jedoch nicht die Bezeichnung zu sein?) wie im Sonoff Touch selbst gegeben.
Im nächsten Schritt fragt er nach der Bezeichnung. Da steht dann z.B. K-Touch249 Switch,Switch,Sensor,Switch
da habe ich Switch.... weggelöscht und gespeichert.
Zack, schon wieder ein Neues bzw. das gleiche device in der Inbox, wieder mit der eigentlichen ID vom Touch??
So war das aber nicht gedacht!
1. Wer/Wo/Was ist welche ID und was mache ich besser nicht, um sowas zu vermeiden?
2. Wie bekomme ich das nun wieder sauber hin, einfach das erste Thing wieder deleten?
3. Wo editiere ich denn in OH3 die channels, denn der hat eigentlich keinen sensor In OH2 konnte ich Channel einfach deaktivieren?
Erledigt, kommt beim Erstellen des Equipments im Modell
4. Muss ich die Items nun selbst anlegen?
Erledigt, kommt mit dem Anlegen des Equipments
5. Und was sind die Pages :-) will ich das wirklich alles?

Edit: Also muß ich wirklich erst ein Modell erstellen um dort dann Equipment anlegen zu können?
(Hier erscheinen auch die editierbaren channels)
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: Openhabian 3.2 MQTT installieren

Beitrag von udo1toni »

Das Semantic Model benötigst Du, wenn Du die Pages automatisch befüllen lassen möchtest. Das Semantic Model nutzt Group Items und Metadaten der Group Items und der zugeordneten Items, Um Ordnung ins Chaos zu bringen. Der wichtigste Punkt dabei: Ein Item kann nur an einer Stelle im Semantic Model auftauchen.
Die Pages sind die neue UI. Du musst sie nicht zwingend verwenden, allerdings bietet sie gegenüber Basic UI und HABpanel schon mehr Möglichkeiten, gerade auch, weil man Widgets nun selbst erstellen kann (bzw. von anderen -Anwendern kreierte Widgets aus dem Marketplace übernehmen kann).

Things sind weiterhin Things, Channel gehören weiterhin zum Thing. Dort kannst Du die Channel also auch editieren. Channel, die Du nicht verwenden willst, verbindest Du einfach nicht mit einem Item (exakt so hat das auch schon unter openHAB2 funktioniert... deaktivierbar ist und war da nie etwas). Ich bin mir nicht sicher, ob man im Fall von automatisch erzeugten Channels einzelne Channel eines Things weg löschen kann.

Items sind weiterhin Items, und wie unter openHAB2 auch schon, kannst Du Items automatisch passend zum Channel erzeugen lassen. Du solltest dabei allerdings an die Funktionalität des Semantic Models denken ;)
Was IDs und Co betrifft: Die UID eines Things/Channels ist der interne Name, unter dem das Thing/der Channel angesprochen werden kann. Die UID muss mit einem Buchstaben anfangen und darf nur Buchstaben des englischen Alphabets, die arabischen Zahlen sowie den Unterstrich enthalten. Der Doppelpunkt kennzeichnet die verscheidenen Ebenen der UID (Binding:Typ[:Bridge]:Thing:Channel. der Teil in eckigen Klammern existiert nicht bei allen Bindings). Die UID ist nachträglich nicht mehr änderbar, Du klönntest allenfalls das Thing oder den Channel wieder löschen und neu anlegen.
Das Label wird in der Übersicht verwendet und ist frei zu setzen, es sind "alle" Zeichen erlaubt. Das Label kann mehrfach im System identisch gesetzt sein, die UID muss immer eineindeutig sein.
Die Kommunikation über mqtt beruht auf den Topics, welche bei der AutoDiscovery vom Binding gesetzt werden. alle anderen Parameter (UID, Label)haben auf die Kommunikation keinen Einfluss.
Es kommt vor (und auch das war schon unter openHAB2 der Fall), dass ein Thing, welches automatisch erkannt wurde, immer wieder erkannt wird, wenn man beim Anlegen die UID den eigenen Wünschen anpasst. Möglichkeit 1: UID vom System vergeben lassen. Möglichkeit 2: Eintrag in der Inbox auf Ignorieren setzen.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: Openhabian 3.2 MQTT installieren

Beitrag von peter-pan »

Ich hab jetzt nicht alles gelesen, was ihr schon geposted habt. Du hast doch ein OH2-System in deinem Netzwerk mit Mosquitto-Broker laufen, oder ? Dann kannst du diesen Broker auch für dein OH3 System verwenden. Du brauchst nur die IP-Adresse deines "OH2-Brokers"in deiner OH3-Bridge einzutragen.

Wie hast du denn deine Items, Things, Rules, etc. in OH2 angelegt ? In Textform oder über die Main-Ui ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Openhabian 3.2 MQTT installieren

Beitrag von Boris099 »

Danke euch sehr für den Support.
Also alles ziemlich schwer zu verdauen, ich bin der Doku gefolgt und habe Mal zum Haus, ein Geschoss, ein Raum und ein Thing zugefügt, so ganz grundsätzlich verstehe ich es, aber ist das wirklich einfach??
Wieso bzw. Wie werden die Pages wirklich automatisch gefüllt?
Wieso brauche ich überhaupt mehrere Pages?

Also ich Versuche erst Mal das neue Konzept zu verstehen, ich glaube brauche doch nur eine Page, dann werde ich Binding für Binding testen, und so die Hardware lauffähig machen, dann erst die rules eine nach dem anderen.
Verstehe nicht was Points und Equipments unterscheidet?
Ich dachte ich benenne die things und deren Code einfach um, wenn das aber dazu führt, das die things nochmal erscheinen, dann lasse ich das einfach wie es hoch kommt.

Ich verstehe nicht wirklich was ihr meint mit ob ich das in Textform oder UI angelegt habe, ich habe es einfach gemacht :-} also ich denke dass ist eine Mischform.
Die Things lasse ich in paperui finden, manche items muss man ja manuell in der items Datei anlegen, andere wie zwave gehen auch ohne, wenn man in den rules die : mit _ ersetzt. Rules sind natürlich in Textform, und Sitemaps auch. Aber ich habe mir nie Gedanken drüber gemacht, ob das irgendwie anders geht.
In OH3 wollte ich das nun genauso machen, also rules in Textform, ich hoffe dass geht hier auch so, den blockly ist für mich wie Chinesisch, thailändisch und Koreanisch zusammen :-)

Ich denke ich werde bestimmt noch etliche Fragen haben, mache dann aber einen anderen Beitrag auf, denn der hier bzgl. MQTT ist ja gelöst
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: Openhabian 3.2 MQTT installieren

Beitrag von peter-pan »

Also das mit dem semantischen Modell sollte man nicht überbewerten, es ist aber trotzdem ein "nettes Gimmick".

Ich nehme an, du hast das in deiner OH2-Installation, auch schon "fast genauso gemacht", nämlich deine Schalter, Geräte, Lampen, etc.(Equipments) in bestimmte Räume (Locations) und auch noch nach bestimmten Eigenschaften (properties), wie Licht, Temperatur, Spannung, etc. gruppiert. Wenn du hier beim Aufbau bestimmten Regeln folgst, baut sich dein semantisches Modell(vergleichbar mit Sitemap/BasicUI) von selbst auf.
Das könnte dann etwa so aussehen(Locations/Equipment/Properties):
semmod.jpg
Der Grundaufbau meiner "castle.items" (Location) sieht dazu in Textform so aus:

Code: Alles auswählen

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                 Locations                                                                                  +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                 Gebäudeplan - Building plan       
Group                             gEstate         "Anwesen Flurstück"                      <garden>                                 ["Location"]
//                                                 Aussenbereich Outdoor area                                            
Group                             gAussen         "Aussenbereich"                          <garden>              (gEstate)          ["Outdoor"]
Group                             gGarage         "Garage"                                 <garage_1>            (gAussen)          ["Garage", "garage_detached"]
Group                             gHof            "Garageneinfahrt"                        <garage_1>            (gAussen)          ["Driveway"]                     
Group                             gGhaus          "Geräteschuppen"                         <garage_1>            (gAussen)          ["Outdoor"]
Group                             gFront          "Vorgarten"                              <garage_1>            (gAussen)          ["Garden"]
Group                             gBack           "Garten Südseite"                        <garage_1>            (gAussen)          ["Garden"]
//                                                 Innenbereich - Indoor                                            
Group                             gInnen          "Innenbereich"                           <house>               (gEstate)          ["Indoor"]
                                                                                           
Group                             gHome           "Casa Claudia"                           <house>               (gInnen)           ["Building"]
//                                                 Stockwerke - Floors                                               
Group                             gEG             "Erdgeschoss"                            <groundfloor>         (gHome)            ["GroundFloor"]
Group                             gDG             "Dachgeschoss"                           <firstfloor>          (gHome)            ["Attic"]
Group                             gUGElw          "Celines Reich"                          <cellar>              (gHome)            ["Basement"]
Group                             gUGKel          "Keller"                                 <cellar>              (gHome)            ["Basement"]
//                                                 Zimmer - Rooms                                                  
Group                             gEG_Bad         "Badezimmer"                             <bubble_bath>         (gHome, gEG)       ["Bathroom" ]                   { synonyms="Badezimmer" }
Group                             gEG_Essen       "Esszimmer"                              <dining>              (gHome, gEG)       ["DiningRoom" ]
Group                             gEG_Kind1       "Zimmer Claudia"                         <girl_3>              (gHome, gEG)       ["Guestroom" ]                  { synonyms="Speisekammer" }
Group                             gEG_WC          "Toilette"                               <toilet>              (gHome, gEG)       ["Bathroom" ]                   { synonyms="Toilette,WC,Restroom" }
Group                             gEG_Wohnen      "Wohnzimmer"                             <living>              (gHome, gEG)       ["LivingRoom" ]
Group                             gEG_Schlafen    "Schlafzimmer"                           <bed>                 (gHome, gEG)       ["Bedroom" ]
Group                             gEG_Kueche      "Küche"                                  <catfridge>           (gHome, gEG)       ["Kitchen" ]
Group                             gEG_Windfang    "Windfang-Garderobe"                     <wardrobe>            (gHome, gEG)       ["Entry" ]
Group                             gEG_Vorgarten   "Vorgarten"                              <lawnmower>           (gHome, gEG)       ["Garden" ]
Group                             gEG_Terrasse    "Terrasse"                               <terrace>             (gHome, gEG)       ["Terrace" ]
Group                             gEG_Kind2       "Zimmer York"                            <boy_3>               (gHome, gEG)       ["Room" ]                        { synonyms="Kinderzimmer" }
Group                             gEG_Diele       "Diele"                                  <corridor>            (gHome, gEG)       ["Corridor" ]
Group                             gEG_Flur        "Flur"                                   <corridor>            (gHome, gEG)       ["Corridor" ]
Group                             gEG_Buero       "Arbeitszimmer"                          <office>              (gHome, gEG)       ["Office" ]                      { synonyms="Bureau,Bureaux" }
Group                             gDG_Speicher    "Dachboden"                              <attic>               (gHome, gDG)       ["Room" ]                        { synonyms="Buehne,Tenne" }
Group                             gUG_Wohnen      "Wohn-Esszimmer"                         <sofa>                (gHome, gUGElw)    ["LivingRoom" ]
Group                             gUG_Schlafen    "Schlafzimmer"                           <bed>                 (gHome, gUGElw)    ["Bedroom" ]
Group                             gUG_Bad         "Badezimmer"                             <bath>                (gHome, gUGElw)    ["Bathroom" ]
Group                             gUG_Diele       "Flur"                                   <corridor>            (gHome, gUGElw)    ["Corridor" ]
Group                             gUG_Waschkueche "Waschküche"                             <washingmachine>      (gHome, gUGKel)    ["LaundryRoom" ]
Group                             gUG_Heizraum    "Heizungsraum"                           <heating>             (gHome, gUGKel)    ["BoilerRoom" ]
Group                             gUG_Keller      "Keller"                                 <cellar>              (gHome, gUGKel)    ["Cellar" ]
Group                             gUG_Holzkeller  "Holz-Keller"                            <cellar>              (gHome, gUGKel)    ["Cellar" ]
                                                  
Group                             gSpecial        "Special"                                                      (gInnen)           ["Indoor"]
Group                             gMonitor        "Monitoring"                                                   (gInnen)           ["Indoor"]

// aktive Gruppen             
Group:Switch:OR(ON,OFF)           gLight          "Monitoring Licht [MAP(de.map):%s]"      <light>               (gMonitor)         ["Indoor"]
Group:Contact:OR(OPEN,CLOSED)     gDoor           "Monitoring Türen [MAP(de.map):%s]"      <door>                (gMonitor)         ["Indoor"]
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//                                                Locations - End                                                                             +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Group:Switch:OR(ON,OFF)           gPower          "Steckdosen gPower [MAP(de.map):%s]"     <poweroutlet>         (gSpecial)         ["Indoor","PowerOutlet"] 
Group:Switch:OR(ON,OFF)           gPower1         "Gruppe Dummies gPower1[MAP(de.map):%s]" <poweroutlet>         (gSpecial)         ["Indoor","WallSwitch" ] 
Group:Switch:OR(ON,OFF)           gInnentur       "Innentüren [MAP(de.map):%s]"            <door>                (gHome)            ["Door"]
Group:Number:AVG                  gHeating        "Heizung [%.1f]"                         <heating1>            (gHome)            ["HVAC"]
Group:Switch:OR(ON,OFF)           gWart           "Wartung [MAP(battery.map):%s]"          <siren>               (gHome)            ["WhiteGood"]
Group:Switch:OR(ON,OFF)           gBatt           "Batterie Status [MAP(battery.map):%s]"  <siren>               (gHome)            ["Battery"]

// Test-Switches
String                            Dummy           "Versucherle [%s]"                                             (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" } //                {channel="exec:command:my_user:output"}
Dimmer                            Dummy_2         "Testschalter Dummy2 [%.0f]"                                   (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { synonyms="Dimmer" }
//Switch                            Dummy_1         "Testschalter Dummy1 [%s]"                                     (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Switch                            Dummy_1         "Testschalter Dummy1 [%s]"                                     (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [ readOnly=false], synonyms="Schalter" }
Switch                            Dummy_3         "Testschalter Dummy3 [%s]"                                     (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Switch                            Dummy_4         "Testschalter Dummy4 [%s]"                                     (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Switch                            Dummy_5         "Testschalter Dummy5 [%s]"                                     (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Switch                            Dummy_6         "Testschalter Dummy6 [%s]"                                     (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Switch                            DummySpi        "Testschalter für Rule Spielereien mit Syntax [%s]"            (gPower,gPower1)   ["WallSwitch", "Point_Control_Switch"]   { stateDescription="pattern" [pattern="MAP(de.map):%s"], synonyms="Schalter" }
Number                            Dummy_7         "Test-Item Number [%s]"                                        (gPower,gPower1)   ["Point"]       
//Rollershutter                     test1           "test1 [%d]"                                                   (gGarage,gGartenShutters,gGaragentor) ["Blinds","OpenState"] 
//Rollershutter                     test2           "test2 [%d]"                                                   (gGarage,gGartenShutters,gGaragentor) ["GarageDoor", "OpenState"]
////
//Group:Rollershutter:OR(UP,DOWN)   gGartenShutters "alle Rolladen [%d] "                    <rollershutter>       (gHome)            ["Blinds"]
//Group:Rollershutter:AVG           gGaragentor     "Garagentor  Ø[%d]"                      <garagedoor>          (gHome)            ["GarageDoor"]

Group:Switch:OR(ON,OFF)           gT_OnOff        "Tasmota Switches [%s]"                  <sonoff_basic>         (gMonitor)       // ["Screen"]
Group:Number:AVG                  gRSSI           "Signalstärke Wifi Ø [%s %%]"            <qualityofservice>     (gMonitor)       // ["Status","Frequency"]
Group                             gVer            "Tasmota-FW-Release-Check "              <arendst>              (gMonitor)       //    // Shows current Release-Versions of the Tasmotas
Group:Switch:OR(OFF,ON)           gLWT            "Tasmota Online [%s]"                    <siren1>               (gInnen)         ["Indoor"]                                { stateDescription="pattern" [ readOnly=true] }
Group                             gTasmo          "Tasmota Maintenance"                    <tasmota>              (gMonitor)       // ["Screen"]   
Group                             gHard           "Hardware Info   "                       <esp8266_2>            (gMonitor)       // ["Screen"]
Group                             gIpAd           "IP Adress Info  "                       <esp8266_2>            (gMonitor)       // ["Screen"]
Group                             gSSId           "IP Name Info  "                         <esp8266_2>            (gMonitor)       // ["Screen"]
Group:Switch:OR(ON,OFF)           gMotion         "Bewegungsmelder"                        <siren1>               (gMonitor)       // ["Status", "Alarm","MotionDetector"]

String EndTime "EndZeit [%s Std/Min/Sek]" <dishwasher>
String RemainingTime "Restlaufzeit [%s Std/Min/Sek]" <dishwasher>
Also eine "logische Gruppierung" (Group) erweitert um die "Tags"(in eckigen Klammern) aus dem semantischen Model.

Du kannst das alles mehr oder weniger automatisiert über die UI anlegen oder wenn du schon in OH2 mit Textfiles und Text-Editoren (evtl. VSC) gearbeitet hast auch in dieser Form arbeiten und ggf. auch solche Textdateien (*.items, *.things,*.map, etc) 1:1 nach OH3 übernehmen.

Die "castle.items" habe ich, ergänzt um die Metadaten(Tags) so aus OH2 übernommen bzw. die Tags schon in meiner OH2-Datei ergänzt und dann einfach nach OH3 kopiert.

Das mit den Pages kommt dann ganz von allein - ich meine die Neugier, nicht dass das auch automatisch geht :lol. Hier ein paar Beispiele:
pages.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Openhabian 3.2 MQTT installieren

Beitrag von Boris099 »

Nun ja, dieses Beispiel, das ist ein etwas größeres Modell:-)

Also ich habe da gerade einen Sonoff Touch mit 3 Switches eingehängt.
Ich verstehe aber nicht wirklich was ich nun mit den einzelnen Kategorien erreichen soll, das wiederholt sich doch alles?
Und was kann ich nun mit der Eingliederung Equipment oder Point sinnvoll erreichen?
Gibt es da wichtige Abhängigkeiten, die man berücksichtigen muss?
Hier der Sonoff (Thing)
Bild_2021-12-28_112549.png
und dann weiter unten die Switches als Channels (das ist doch nicht doppelt aber ungefähr fünffach gemoppelt :-)
Die channels werden als Points vorgeschlagen (sieht man im Expertmode), warum ist das so und soll/muss ich das so lassen?
Für was ist die semantic property jetzt noch gut?
Bild_2021-12-28_112648.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: Openhabian 3.2 MQTT und Semantisches Modell

Beitrag von peter-pan »

Ich habe leider keinen Touch mit 3 Schaltern, sondern nur mit einem und auch nur als Textfile. Aber vielleicht kann man da die Abhängigkeiten besser erkennen.

Code: Alles auswählen

Group     gTouch_01                      "Lichtschalter Sonoff Touch"                      <lamp_globe_light>      (gEG_Kind1,gT_OnOff)                        ["WallSwitch"]
Switch    Sonoff_touch_01                "Deckenlampe Claudia  [MAP(de.map):%s]"           <lamp_globe_light>      (gTouch_01,gT_OnOff,gLight)                 ["Switch","Light"]                          { channel="mqtt:topic:vera:touch01:power"}
Number    Sonoff_touch_01_RSSI           "Deckenlampe Claudia  RSSI [%s]"                  <qualityofservice>      (gTouch_01,gRSSI)                           ["Point"]                                   { channel="mqtt:topic:vera:touch01:rssi" } 
String    Sonoff_touch_01_Version        "Deckenlampe Claudia Version [%s]"                <sonoff_switch>         (gTouch_01,gVer)                            ["Point"]                                   { channel="mqtt:topic:vera:touch01:version" } 
Switch    Sonoff_touch_01_Unreach        "Deckenlampe Claudia Ereichbarkeit [%s]"          <siren1>                (gTouch_01,gLWT)                            ["Point"]                                   { channel="mqtt:topic:vera:touch01:reachable" } 
String    Sonoff_touch_01_Hardware       "Deckenlampe Claudia Hardware [%s]"               <sonoff_switch>         (gTouch_01,gHard)                           ["Point"]                                   { channel="mqtt:topic:vera:touch01:hardware" } 
String    Sonoff_touch_01_IPAddress      "Deckenlampe Claudia IP-Address [%s]"             <sonoff_switch>         (gTouch_01,gIpAd)                           ["Point"]                                   { channel="mqtt:topic:vera:touch01:ipaddress" } 
Das erste Item, das Gruppen-Item ist über die Gruppenzuordnung (in Klammern - gEG_Kind1) der Location "gEG_Kind1" zugeordnet und durch die Verknüpfung in eckigen Klammern als Equipment "WallSwitch" deklariert (semantisches Modell). Die restlichen Items sind dann die Points bzw. Properties, z.T. auch mit besonderen Properties(At-a-glance modules), die sich wiederum in den Location-Cards auswirken und natürlich über deren Gruppenzordnung sich die Zugehörigkeit zum jeweiligen "Equipment" erklärt. Näheres hierzu findest du auch unter diesem Link.

Das hört sich zwar zunächst etwas verwirrend an, ist aber "fast" das Gleiche, wie man in OH2 vorgegangen ist bzw. gehen konnte(z.B. auch mit dem "Raumplan-Editor", oder so ähnlich :) ).
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Openhabian 3.2 MQTT und Semantisches Modell

Beitrag von Boris099 »

Ich glaube ich werde das mit der UI machen, sonst wird mir schwindelig :-)
Aber ich habe das grundsätzlich verstanden.
Und was noch besser ist, man kann das ja nachträglich beliebig ändern, das ist doch korrekt oder?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: Openhabian 3.2 MQTT und Semantisches Modell

Beitrag von peter-pan »

Boris099 hat geschrieben: 28. Dez 2021 14:01 Und was noch besser ist, man kann das ja nachträglich beliebig ändern, das ist doch korrekt oder?
...im Prinzip, ja ;) . Ausser natürlich Schlüsselwörter (Item-Name, Thing-UID, etc). Da musst du in der MainUI löschen und neu anlegen.
Boris099 hat geschrieben: 28. Dez 2021 14:01 Ich glaube ich werde das mit der UI machen, sonst wird mir schwindelig
Da geht es mir genau anders herum. Aber wie gesagt, das ist Geschmackssache. Und die Bearbeitung über die UI wurde ja nicht nur aus Spass gemacht, sondern weil das jetzt wohl "zeitgemäss" ist. Beide Pflege-Arten haben ihre Vor- und Nachteile.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten