OliverCJ hat geschrieben: ↑23. Jan 2021 10:05
Was ich meine verstanden zu haben:
Location sind nichts anderes als Groupitems, die ich wie bisher miteinander verschachteln kann (gEingangsbereich ist Bestandteil von gDraussen, welches wiederum Bestandteil von gFrankenstr ist). Die drei o.g. Things packe ich in gEingangsbereich. Allerdings muss ich wirklich von vornherein sauber definieren, da ich später nicht mehr hin und herschieben kann. Heute würde ich das einfach über umbenennen von Gruppen machen bzw über ein ändern der Zuordnungen.
So wie ich das verstanden (es hat eine Weile gedauert

) habe, ist das auch nach wie vor noch so, nur dass halt noch ein paar "Tags" dazu kommen.
Mein Raumplan aus OH2 ist der gleiche geblieben wie in OH3. Die Tags habe ich einfach ergänzt (schon in OH2) und das sieht dann so als File 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" (gAussen) ["Driveway"]
Group gGhaus "Gartenhaus" (gAussen) ["Outdoor"]
Group gFront "Vorgarten" (gAussen) ["Garden"]
Group gBack "Garten Südseite" (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) ["Room" ] { synonyms="Kinderzimmer" }
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" ]
Group gDG_Speicher "Dachboden" <attic> (gHome, gDG) ["Room" ]
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" // ["Outdoor"]
Group gMonitor "Monitoring" // ["Outdoor"]
// aktive Gruppen
Group:Switch:OR(ON,OFF) gLight "Licht [MAP(de.map):%s]" <light> (gInnen) ["Indoor"]
Group:Contact:OR(OPEN,CLOSED) gDoor "Türen [MAP(de.map):%s]" <door> (gInnen) ["Indoor"]
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Locations - End +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Group:Switch:OR(ON,OFF) gPower "Steckdosen gPower [MAP(de.map):%s]" <poweroutlet> (gSpecial) ["PowerOutlet"]
Group:Switch:OR(ON,OFF) gPower1 "Gruppe Dummies gPower1[MAP(de.map):%s]" <poweroutlet> (gSpecial) ["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 [%.1f]" (gPower,gPower1) ["WallSwitch", "Point_Control_Switch"] { synonyms="Dimmer", widget="oh-toggle-card" }
Switch Dummy_1 "Testschalter Dummy1 [%s]" (gPower,gPower1) ["WallSwitch", "Point_Control_Switch"] { stateDescription="pattern" [pattern="MAP(de.map):%s"], 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" }
Rollershutter test1 "test1 [%d]" (gGartenShutters,gGaragentor) ["GarageDoor", "Blinds"]
Rollershutter test2 "test2 [%d]" (gGartenShutters,gGaragentor) ["GarageDoor", "Blinds"]
//
Group:Rollershutter:OR(UP,DOWN) gGartenShutters "alle Rolladen [%d] " <rollershutter> (gHome) ["GarageDoor", "Blinds"]
Group:Rollershutter:AVG gGaragentor "Garagentor Ø[%d]" <garagedoor> (gHome) ["GarageDoor", "Blinds"]
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"]
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"]
Ich könnte mir vorstellen, dass der Aussenbewegungsmelder eine "Location" deines Aussenbereiches ist und die drei Things jeweils ein "Equipment" oder du machst direkt drei Equipments in deinem Aussenbereich.
Im "Model sieht das dann so aus:
plan.jpg
Das .items-file für den Aussensensor sieht bei mir so aus:
Code: Alles auswählen
// Aussentemperaturfühler Nord
Group gSen_761F "Aussensensor Nord" <temperature> (gFront) ["Sensor"]
Switch HMIPAussensensorNord0INSTALLTEST "Aussensensor Nord Install test [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#INSTALL_TEST"}
String HMIPAussensensorNord0OPERATINGVOLTAGESTATUS "Aussensensor Nord Arbeitsspannung status [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#OPERATING_VOLTAGE_STATUS"}
Number HMIPAussensensorNord0SIGNALSTRENGTH "Aussensensor Nord Signalstärke [%s]" <signal> (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#SIGNAL_STRENGTH"}
Number HMIPAussensensorNord0RSSI "Aussensensor Nord Rssi [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#RSSI"}
Number HMIPAussensensorNord0ERRORCODE "Aussensensor Nord Fehler:Code[%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#ERROR_CODE"}
Switch HMIPAussensensorNord0UPDATEPENDING "Aussensensor Nord Update ausstehend [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#UPDATE_PENDING"}
Switch HMIPAussensensorNord0LOWBAT "Aussensensor Nord Batteriestatus[MAP(battery.map):%s]" <lowbattery1> (gSen_761F,gBatt) ["LowBattery"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#LOW_BAT"}
Switch HMIPAussensensorNord0UNREACH "Aussensensor Nord Erreichbarkeit [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#UNREACH"}
String HMIPAussensensorNord0FIRMWARE "Aussensensor Nord Firmware [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#FIRMWARE"}
Switch HMIPAussensensorNord0TEMPERATUREOUTOFRANGE "Aussensensor Nord Temperature out of range" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#TEMPERATURE_OUT_OF_RANGE"}
Number HMIPAussensensorNord0OPERATINGVOLTAGE "Aussensensor Nord Arbeitsspannung [%.1f V]" (gSen_761F) ["Voltage"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#OPERATING_VOLTAGE"}
Number HMIPAussensensorNord0RSSIPEER "Aussensensor Nord Rssi peer [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#RSSI_PEER"}
String HMIPAussensensorNord0DELETEDEVICEMODE "Aussensensor Nord Delete device mode [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#DELETE_DEVICE_MODE"}
Switch HMIPAussensensorNord0DUTYCYCLE "Aussensensor Nord Duty cycle [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#DUTY_CYCLE"}
Switch HMIPAussensensorNord0CONFIGPENDING "Aussensensor Nord Config pending [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#CONFIG_PENDING"}
Switch HMIPAussensensorNord0DELETEDEVICE "Aussensensor Nord Delete device [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#DELETE_DEVICE"}
Number HMIPAussensensorNord0RSSIDEVICE "Aussensensor Nord Rssi device [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#RSSI_DEVICE"}
String HMIPAussensensorNord0BATTERYTYPE "Aussensensor Nord Batterie Typ [%s]" (gSen_761F) ["Control"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:0#BATTERY_TYPE"}
Number:Temperature HMIPAussensensorNord1ACTUALTEMPERATURE "Aussensensor Nord aktuelle Temperatur[%.1f %unit%]" <temperature> (gSen_761F) ["Temperature","Measurement"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:1#ACTUAL_TEMPERATURE", stateDescription="pattern" [pattern="%.1f %unit%"]}
String HMIPAussensensorNord1HUMIDITYSTATUS "Aussensensor Nord Luftfeuchtigkeit Status [%s]" (gSen_761F) ["Humidity","Status"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:1#HUMIDITY_STATUS"}
Number:Dimensionless HMIPAussensensorNord1HUMIDITY "Aussensensor Nord Luftfeuchtigkeit [%.1f %unit%]" <humidity> (gSen_761F) ["Humidity","Measurement"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:1#HUMIDITY"}
String HMIPAussensensorNord1ACTUALTEMPERATURESTATUS "Aussensensor Nord aktuelle Temperatur Status[%s]" (gSen_761F) ["Temperature","Status"] {channel="homematic:HmIP-STHO-A:3014F711A0001F98A9AABCAF:0010DA4994761F:1#ACTUAL_TEMPERATURE_STATUS"}
Bei dem Tag "Control" bin ich mir noch nicht so sicher, ob das so ok ist. Du kannst da sicherlich auch z.B. "Point" nehmen. Ich bin auch noch in der Experimentierphase

.
Aber es geht ja auch anders, wie @harteknut schon aufgezeigt hat. Das werde ich auch in Angriff nehmen, obwohl ich natürlich das "semantische Modell" so gut wie möglich aufbauen will.
Edit: Hab grad gesehen, dass @harteknut es schon genau auf den Punkt gebracht hat, während ich noch am "formulieren" war.