Aber Du hast ja schon alle Geräte als einzelne Things angelegt!
An einigen Stellen hast Du vermutlich Tippfehler drin... z.B.
Stat anstatt
stat an fünf Stellen.
Beim Thing Anlage hast Du teilweise IRWLAN, teilweise IRWLAN2, allerdings in einem Channel gemischt. Es ist eher unwahrscheinlich, dass das korrekt ist.
Beim Thing, mit dem Du Probleme hast, fehlt beim 3. Channel ein d bei commandTopic. Eventuell verursacht das ein Problem mit diesem Thing.
Ich versuche immer, mindestens innerhalb eines Things die Bereiche (Type, Label, Parameter) gleich einzurücken, dann fallen solche Fehler schneller auf. Hier im Forum ist es immens wichtig, möglichst die Tabs durch jeweils vier Leerzeichen zu ersetzen, die Forensoftware verwendet acht Leerzeichen als Einrückung, so dass oftmals die Formatierung komplett verloren geht.
Code: Alles auswählen
Bridge mqtt:broker:JojoBroker [
host="192.168.65.4",
// username="XXXX",
// password ="YYYYY",
secure="false"
] {
Thing topic espkeller "ESP8266 Keller" @ "ESP8266" { // Keller und außen
Channels:
Type string : TempKeller "Kellerabgang" [ stateTopic="tele/TempSensUG/SENSOR", transformationPattern="JSONPATH:$.DS18B20-2.Temperature" ]
Type string : TempTerrasse "Terrasse" [ stateTopic="tele/TempSensUG/SENSOR", transformationPattern="JSONPATH:$.DS18B20-1.Temperature" ]
// Type string : TempKellerInnen "Keller Innen" [ stateTopic="tele/Temperaturen/SENSOR", transformationPattern="JSONPATH:$.DS18B20-3.Temperature" ]
}
Thing topic espunten "ESP8266 Unten"@ "ESP8266" { // Erdgeschoß
Channels:
Type string : TempGang "Gang EG" [ stateTopic="tele/TempSensEG/SENSOR", transformationPattern="JSONPATH:$.DS18B20.Temperature" ]
Type string : TempWohnz "Temp Wohnzimmer" [ stateTopic="tele/TempSensEG/SENSOR", transformationPattern="JSONPATH:$.DHT11-14.Temperature" ]
Type string : TempKeller2 "Keller2" [ stateTopic="tele/TempSensEG/SENSOR", transformationPattern="JSONPATH:$.AM2301-12.Temperature" ]
Type string : HumKeller "Luftfeuchte Keller" [ stateTopic="tele/TempSensEG/SENSOR", transformationPattern="JSONPATH:$.AM2301-12.Humidity" ]
Type string : HumEG "Luftfeuchte Wohnzimmer" [ stateTopic="tele/TempSensEG/SENSOR", transformationPattern="JSONPATH:$.DHT11-14.Humidity" ]
}
Thing topic espoben "ESP8266 Oben" @"ESP8266" { // 1.ter Stock
Channels:
Type string : TempSchlaf "Schlafzimmer" [ stateTopic="tele/TempSensOG/SENSOR", transformationPattern="JSONPATH:$.DS18B20-1.Temperature" ]
Type string : TempBuero "Büro" [ stateTopic="tele/TempSensOG/SENSOR", transformationPattern="JSONPATH:$.DS18B20-2.Temperature" ]
Type string : TempBuero2 "Büro 2" [ stateTopic="tele/TempSensOG/SENSOR", transformationPattern="JSONPATH:$.AM2301.Temperature" ]
Type string : HumBuero "Luftfeuchte" [ stateTopic="tele/TempSensOG/SENSOR", transformationPattern="JSONPATH:$.AM2301.Humidity" ]
}
Thing topic espgarage "ESP Garage" @ "ESP8266" { // auf der Garage
Channels:
Type string : TempGA "Garage" [ stateTopic="tele/TempSensGA/SENSOR", transformationPattern="JSONPATH:$.DS18B20.Temperature" ]
}
Thing topic Steckdose1 "Steckdose 1" @ "Gosund" { // Steckdose 1 192.168.65.91
Channels:
Type switch : power1 "Steckdose 1" [ stateTopic="stat/Steckdose1/POWER" , commandTopic="cmnd/Steckdose1/POWER" ]
Type number : ptotal1 "Verbrauch total 1" [ stateTopic="tele/Steckdose1/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuell1 "aktueller Verbrauch 1" [ stateTopic="tele/Steckdose1/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Thing topic Steckdose2 "Steckdose 2" @"Gosund" { // Steckdose Musik 192.168.65.92
Channels:
Type switch : powermusik "Power Musik" [ stateTopic="stat/Steckdose2/POWER" , commandTopic="cmnd/Steckdose2/POWER" ]
Type number : ptotalmusik "Verbrauch total Musik" [ stateTopic="tele/Steckdose2/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuellmusik "aktueller Verbrauch Musik" [ stateTopic="tele/Steckdose2/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Thing topic Steckdose3 "Steckdose 3" @ "Gosund" { // Steckdose 3 192.168.65.93
Channels:
Type switch : power3 "Steckdose 3" [ stateTopic="stat/Steckdose3/POWER1", commandTopic="cmnd/Steckdose3/POWER1" ]
Type switch : power3USB "Steckdose 3 USB Port" [ stateTopic="tele/Steckdose3/POWER2", commandTopic="cmnd/Steckdose3/POWER2" ]
Type number : ptotal3 "Verbrauch total 3" [ stateTopic="tele/Steckdose3/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuell3 "aktueller Verbrauch 3" [ stateTopic="tele/Steckdose3/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
Type string : statepower3 "aktueller Schaltzustand 3" [ stateTopic="tele/Steckdose3/STATE", transformationPattern="JSONPATH:$.POWER1" ]
Type number : Leistung "aktuelle Watt" [ stateTopic="tele/Steckdose3/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power" ]
}
Thing topic Steckdose4 "Steckdose 4" @ "Gosund" { // Steckdose PC 192.168.65.94
Channels:
Type switch : powerpc "Power PC" [ stateTopic="stat/Steckdose4/POWER", commandTopic="cmnd/Steckdose4/POWER" ]
Type switch : power4USB "Steckdose 4 USB Port" [ stateTopic="stat/Steckdose4/POWER2", commandTopic="cmnd/Steckdose4/POWER2" ]
Type number : ptotalpc "Verbrauch total PC" [ stateTopic="tele/Steckdose4/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuellpc "aktueller Verbrauch PC" [ stateTopic="tele/Steckdose4/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Thing topic Steckdose5 "Steckdose 5" @ "Gosund" { // Steckdose Fernseher 192.168.65.95
Channels:
Type switch : powertv "Power TV" [ stateTopic="stat/Steckdose5/POWER", commandTopic="cmnd/Steckdose5/POWER" ]
Type switch : power5USB "Steckdose 5 USB Port" [ stateTopic="stat/Steckdose5/POWER2", commandTopic="cmnd/Steckdose5/POWER2" ]
Type number : ptotaltv "Verbrauch total TV" [ stateTopic="tele/Steckdose5/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuelltv "aktueller Verbrauch TV" [ stateTopic="tele/Steckdose5/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Thing topic Steckdose6 "Steckdose 6" @ "Gosund" { // Steckdose 192.168.65.96
Channels:
Type switch : power6 "Steckdose 6" [ stateTopic="stat/Steckdose6/POWER", commandTopic="cmnd/Steckdose6/POWER" ]
Type switch : power6USB "Steckdose 6 USB Port" [ stateTopic="stat/Steckdose6/POWER2", commandTopic="cmnd/Steckdose6/POWER2" ]
Type number : ptotal6 "Verbrauch total 6" [ stateTopic="tele/Steckdose6/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuell6 "aktueller Verbrauch 6" [ stateTopic="tele/Steckdose6/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Thing topic SteckdosenleisteEG "Steckdosenleiste" @ "Gosund" { // Steckdosenleiste Anlage unten 192.168.65.111
Channels:
Type switch: power7 "TV unten" [ stateTopic="stat/SteckdosenleisteEG/POWER1", commandTopic="cmnd/SteckdosenleisteEG/POWER1" ]
Type switch: power8 "CD und Phono unten" [ stateTopic="stat/SteckdosenleisteEG/POWER2", commandTopic="cmnd/SteckdosenleisteEG/POWER2" ]
Type switch: power9 "Musik unten" [ stateTopic="stat/SteckdosenleisteEG/POWER3", commandTopic="cmnd/SteckdosenleisteEG/POWER3" ]
Type switch: power7USB "Steckdosenleiste USB" [ stateTopic="stat/SteckdosenleisteEG/POWER4", commandTopic="cmnd/SteckdosenleisteEG/POWER4" ]
Type number: ptotal7 "Verbrauch total Leiste" [ stateTopic="tele/SteckdosenleisteEG/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number: paktuell7 "aktueller Verbrauch Leiste" [ stateTopic="tele/SteckdosenleisteEG/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Thing topic TasterDesk "Schalter und Taster" @ "Schalter/Taster" { // Taster 1 PC Büro
Channels:
Type string: Taster1 "Köpfe und Co. ein" [ stateTopic="stat/TasterBuero/POWER1" ]
Type switch: Taster2 "Anlage ein/aus" [ stateTopic="stat/TasterBuero/POWER2", transformationPattern="JSONPATH:$" ]
// Type switch: taster4 "PC ein/aus" [ stateTopic="stat/TasterBuero/POWER4", commandTopic="cmnd/TasterBuero/POWER4" ]
}
Thing topic Anlage "Steuerung Anlage " @ "Anlage" { // Pearl ucc 192.168.65.100
Channels:
Type string: Verstein "Verstärker an" [ stateTopic="stat/IRWLAN2/Result", commandTopic="cmnd/IRWLAN/IRSEND" ]
Type string: Protocol "Protokoll" [ stateTopic="tele/IRWLAN2/RESULT", transformationPattern="JSONPATH:$.IrReceived.Data" ]
Type string: Befehl "Befehl" [ stateTopic="tele/IRWLAN2/RESULT", transformationPattern="JSONPATH:$.IrReceived.Data" ]
// Type string: DataLSB "Daten LSB" [ stateTopic="tele/IRWLAN/RESULT", transformationPattern="JSONPATH:$.IrReceived.DataLSB" ]
// Pearl ucc 192.168.18.106
Type string: Befehlo "Befehl oben" [ stateTopic="tele/IRWLAN2/RESULT", transformationPattern="JSONPATH:$.IrReceived.Data" ]
}
Thing topic Shellies "Shelly WLAN Schalter" @ "Schalter/Taster" { // Shelley Licht Esszimmer 192.168.65.121
Channels:
// Type switch: ShellyESSZ "Licht Esszimmer" [ stateTopic="Shellies/shellyESSZ/relay/0", commandTopic="Shellies/shellyESSZ/relay/0/command" ]
Type switch: ShellyBuero "Licht Büro" [ stateTopic="Shellies/shellyBuero/relay/0", commandTopic="Shellies/shellybuero/relay/0/command" ]
Type switch: ShellyKeller "Raspberry Keller" [ stateTopic="Shellies/shellyKeller/relay/0", commandTopic="Shellies/shellyKeller/relay/0/command" ]
}
Thing topic Sonoff "Sonoff" @ "Schalter/Taster" { // Sonoff Wandschalter
Channels:
Type switch: LichtEssZ "Licht Esszimmer" [ stateTopic="stat/tasmotaEssZ/POWER1", commandTopic="cmnd/tasmotaEssZ/POWER1" ]
Type switch: Radio "Anlage" [ stateTopic="stat/tasmotaEssZ/POWER2", commandTopic="cmnd/tasmotaEssZ/POWER2" ]
Type switch: Sonoff2 "Taster 3" [ stateTopic="stat/tasmotaEssZ/POWER3", commandTopic="cmnd/tasmotaEssZ/POWER3" ]
}
Thing topic Entfernung "Entfernungsmesser" { // ESP8266 Tasmota HC-SR04 1-3
Channels:
Type string: Laenge1 "TOF Sensor 1" [ stateTopic="tele/Laser1/SENSOR", transformationPattern="JSONPATH:$.VL53L0X_1.Distance" ]
}
Thing topic Wasser "Wassermelder im Keller" { // ESP82366 Tasmota Wasser im Keller
Channels:
Type number: Waschkeller "Wassermelder im Waschkeller" [ stateTopic="tele/FeuchteKeller/SENSOR", transformationPattern="JSONPATH:$.ANALOG.A0" ]
}
Thing topic Thorens "Umschalter Plattenspieler" @ "Schalter/Taster" { // ESP8266 Tasmota 192.168.65.134
Channels:
// Type string: PowerD1 "Taster links" [ stateTopic="stat/Dreher/RESULT", transformationPattern="JSONPATH:$.POWER1" ]
Type string: PowerD2 "Taster rechts" [ stateTopic="stat/Dreher/RESULT", transformationPattern="JSONPATH:$.POWER2" ]
Type switch: PowerD3 "LED links" [ stateTopic="stat/Dreher/POWER3", commandTopic="cmnd/Dreher/POWER3" ]
Type switch: PowerD4 "LED rechts" [ stateTopic="stat/Dreher/POWER4", commandTopic="cmnd/Dreher/POWER4" ]
Type switch: PowerD5 "Umschalt - Relais" [ stateTopic="stat/Dreher/POWER5", commandTopic="cmnd/Dreher/POWER5" ]
}
Thing topic Uhr "Star Wars Uhr" {
Channels:
Type number: uhr "Entfernung" [ stateTopic="home/data/uhr"]
}
}
Wie gesagt hast Du ja schon fast alle Geräte in einzelne Things gruppiert, bis auf die Shellies.
Ansonsten empfehle ich immer, die Things und speziell die Channelnamen allgemein zu halten. Im Label dürfen sie gerne spezifisch sein. Beispiel:
Code: Alles auswählen
Thing topic Steckdose6 "Steckdose 6" @ "Gosund" { // Steckdose 192.168.65.96
Channels:
Type switch : power6 "Steckdose 6" [ stateTopic="stat/Steckdose6/POWER", commandTopic="cmnd/Steckdose6/POWER" ]
Type switch : power6USB "Steckdose 6 USB Port" [ stateTopic="stat/Steckdose6/POWER2", commandTopic="cmnd/Steckdose6/POWER2" ]
Type number : ptotal6 "Verbrauch total 6" [ stateTopic="tele/Steckdose6/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total" ]
Type number : paktuell6 "aktueller Verbrauch 6" [ stateTopic="tele/Steckdose6/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current" ]
}
Die Information, dass es sich um die sechste Steckdose handelt, hast Du sowohl im Thingnamen als auch im Channelnamen drin, aber beide sind Teil der zu setzenden UID, diese Information ist also redundant.
Ich nutze für die Channel eher allgemeine Begriffe, z.B. ch1 für den Switch, der das Relais einer WLAN Steckdose steuert, weil ich auch teilweise mehrfachsteckdosen habe, die dann ch2, ch3 usw. heißen. ch1Pow ist dann der aktuielle Verbrauch usw. Auf Hardwareebene ist die konkrete Funktion für mich im Label ersichtlich. Das führt zu mehr Einheitlichkeit beim Anlegen der zugehörigen Items (z.B. alle Switches für Relais enden mit chx, wobei x die Nummer des Relais am konkreten Gerät ist. Dadurch wird in einer Items Datei die Lesbarkeit ebenfalls erhöht. und Tippfehler fallen eher ins Auge.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet