Zitat von: rudolfkoenig am 19 Januar 2026, 14:07:36Erst bitte pruefen, ob eine autocreate FHEM Instanz aktiv ist.Ich sage mal ja, da ich das u.a. bei zigbee2mqtt habe.
defmod TTN MQTT2_CLIENT eu1.cloud.thethings.network:1883
attr TTN autocreate simple
attr TTN keepaliveTimeout 300
attr TTN username wespe@ttnZitat von: pallago am 26 April 2022, 22:16:084) Füge nun die BridgeDevice dem MQTT2_MQTT_lora_node zu durch (Hinweis; der Ausdruck "v3/lora...." kommt aus dem Device MQTT2_MQTT_lora_node unter der readingList):Das Device kommt nicht und MQTT2_Client kennt kein bridgeRegexp als Attribut.
attr MQTT2_MQTT_lora_node bridgeRegexp v3/lora-node\x40ttn/devices/module([0-90-9]*)[/]?.*:.* "lora_node_module$1"
define Weihnachtsbeleuchtung_Steuerung DOIF ([LiSens_Garage_0Uhr] eq "active" and $month==11 and $mday>=20 and $mday <=26 and $wday==0) (set LiSens_Garage_0Uhr inactive;;setReading Weihnachtsbeleuchtung_Steuerung Status XMAS TIME)\
DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and $month==1 and $mday==6) (set LiSens_Garage_0Uhr active;;set room=Weihnachtsbeleuchtung on;;setreading Weihnachtsbeleuchtung_Steuerung Status normal - alle Shelly on)\
DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and [06:00-23:59] and [LW.I1.Lichtsensor_Garage] eq "on" ) (set room=Weihnachtsbeleuchtung on;;setreading Weihnachtsbeleuchtung_Steuerung Status ON: LS und Zeit und Xmas)\
DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and [06:00-23:59] and [LW.I1.Lichtsensor_Garage] eq "off" ) (set room=Weihnachtsbeleuchtung off;;setreading Weihnachtsbeleuchtung_Steuerung Status OFF: Hell Xmas)\
DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and ([00:00] or [LW.I1.Lichtsensor_Garage] eq "off")) (set room=Weihnachtsbeleuchtung off;;setreading Weihnachtsbeleuchtung_Steuerung Status OFF: 0 Uhr Xmas)\
attr Weihnachtsbeleuchtung_Steuerung do always
attr Weihnachtsbeleuchtung_Steuerung room Lichtsteuerung,Weihnachtsbeleuchtung
attr Weihnachtsbeleuchtung_Steuerung stateFormat Status
# DEF ([LiSens_Garage_0Uhr] eq "active" and $month==11 and $mday>=20 and $mday <=26 and $wday==0) (set LiSens_Garage_0Uhr inactive;setReading Weihnachtsbeleuchtung_Steuerung Status XMAS TIME)
#DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and $month==1 and $mday==6) (set LiSens_Garage_0Uhr active;set room=Weihnachtsbeleuchtung on;setreading Weihnachtsbeleuchtung_Steuerung Status normal - alle Shelly on)
#DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and [06:00-23:59] and [LW.I1.Lichtsensor_Garage] eq "on" ) (set room=Weihnachtsbeleuchtung on;setreading Weihnachtsbeleuchtung_Steuerung Status ON: LS und Zeit und Xmas)
#DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and [06:00-23:59] and [LW.I1.Lichtsensor_Garage] eq "off" ) (set room=Weihnachtsbeleuchtung off;setreading Weihnachtsbeleuchtung_Steuerung Status OFF: Hell Xmas)
#DOELSEIF([LiSens_Garage_0Uhr] eq "inactive" and ([00:00] or [LW.I1.Lichtsensor_Garage] eq "off")) (set room=Weihnachtsbeleuchtung off;setreading Weihnachtsbeleuchtung_Steuerung Status OFF: 0 Uhr Xmas)
#
# FUUID 6921ce7a-f33f-5bb8-2691-ab3a3b23330ceed7
# MODEL FHEM
# NAME Weihnachtsbeleuchtung_Steuerung
# NOTIFYDEV LiSens_Garage_0Uhr,global,LW.I1.Lichtsensor_Garage
# NR 173
# NTFY_ORDER 50-Weihnachtsbeleuchtung_Steuerung
# STATE normal - alle Shelly on
# TYPE DOIF
# VERSION 30659 2025-12-25 12:37:16
# READINGS:
# 2026-01-19 13:35:34 Device LW.I1.Lichtsensor_Garage
# 2026-01-18 15:03:15 Status normal - alle Shelly on
# 2026-01-18 15:04:14 cmd 0
# 2026-01-19 13:35:34 e_LW.I1.Lichtsensor_Garage_STATE off
# 2026-01-18 15:04:14 mode enabled
# 2026-01-18 15:04:14 state initialized
# 2026-01-18 23:59:00 timer_01_c03 19.01.2026 06:00:00
# 2026-01-18 23:59:00 timer_02_c03 19.01.2026 23:59:00
# 2026-01-18 23:59:00 timer_03_c04 19.01.2026 06:00:00
# 2026-01-18 23:59:00 timer_04_c04 19.01.2026 23:59:00
# 2026-01-19 00:00:00 timer_05_c05 20.01.2026 00:00:00
# Regex:
# accu:
# bar:
# barAvg:
# collect:
# cond:
# LW.I1.Lichtsensor_Garage:
# 0:
# 1:
# 2:
# &STATE ^LW.I1.Lichtsensor_Garage$
# 3:
# &STATE ^LW.I1.Lichtsensor_Garage$
# 4:
# &STATE ^LW.I1.Lichtsensor_Garage$
# LiSens_Garage_0Uhr:
# 0:
# &STATE ^LiSens_Garage_0Uhr$
# 1:
# &STATE ^LiSens_Garage_0Uhr$
# 2:
# &STATE ^LiSens_Garage_0Uhr$
# 3:
# &STATE ^LiSens_Garage_0Uhr$
# 4:
# &STATE ^LiSens_Garage_0Uhr$
# condition:
# 0 ::InternalDoIf($hash,'LiSens_Garage_0Uhr','STATE') eq "active" and $month==11 and $mday>=20 and $mday <=26 and $wday==0
# 1 ::InternalDoIf($hash,'LiSens_Garage_0Uhr','STATE') eq "inactive" and $month==1 and $mday==6
# 2 ::InternalDoIf($hash,'LiSens_Garage_0Uhr','STATE') eq "inactive" and ::DOIF_time($hash,0,1,$wday,$hms) and ::InternalDoIf($hash,'LW.I1.Lichtsensor_Garage','STATE') eq "on"
# 3 ::InternalDoIf($hash,'LiSens_Garage_0Uhr','STATE') eq "inactive" and ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'LW.I1.Lichtsensor_Garage','STATE') eq "off"
# 4 ::InternalDoIf($hash,'LiSens_Garage_0Uhr','STATE') eq "inactive" and (::DOIF_time_once($hash,4,$wday) or ::InternalDoIf($hash,'LW.I1.Lichtsensor_Garage','STATE') eq "off")
# days:
# do:
# 0:
# 0 set LiSens_Garage_0Uhr inactive;setReading Weihnachtsbeleuchtung_Steuerung Status XMAS TIME
# 1:
# 0 set LiSens_Garage_0Uhr active;set room=Weihnachtsbeleuchtung on;setreading Weihnachtsbeleuchtung_Steuerung Status normal - alle Shelly on
# 2:
# 0 set room=Weihnachtsbeleuchtung on;setreading Weihnachtsbeleuchtung_Steuerung Status ON: LS und Zeit und Xmas
# 3:
# 0 set room=Weihnachtsbeleuchtung off;setreading Weihnachtsbeleuchtung_Steuerung Status OFF: Hell Xmas
# 4:
# 0 set room=Weihnachtsbeleuchtung off;setreading Weihnachtsbeleuchtung_Steuerung Status OFF: 0 Uhr Xmas
# 5:
# helper:
# NOTIFYDEV LiSens_Garage_0Uhr,global,LW.I1.Lichtsensor_Garage
# event off
# globalinit 1
# last_timer 5
# sleeptimer -1
# triggerDev LW.I1.Lichtsensor_Garage
# triggerEvents:
# off
# triggerEventsState:
# state: off
# internals:
# all LiSens_Garage_0Uhr:STATE LW.I1.Lichtsensor_Garage:STATE
# interval:
# 0 -1
# 1 0
# 2 -1
# 3 2
# intervalfunc:
# intervaltimer:
# localtime:
# 0 1768798800
# 1 1768863540
# 2 1768798800
# 3 1768863540
# 4 1768863600
# perlblock:
# readings:
# realtime:
# 0 06:00:00
# 1 23:59:00
# 2 06:00:00
# 3 23:59:00
# 4 00:00:00
# time:
# 0 06:00:00
# 1 23:59:00
# 2 06:00:00
# 3 23:59:00
# 4 00:00:00
# timeCond:
# 0 2
# 1 2
# 2 3
# 3 3
# 4 4
# timer:
# 0 0
# 1 0
# 2 0
# 3 0
# 4 0
# timers:
# 2 0 1
# 3 2 3
# 4 4
# trigger:
# triggertime:
# 1768863540:
# localtime 1768863540
# hash:
# 1768863600:
# localtime 1768863600
# hash:
# uiState:
# uiTable:
#
setstate Weihnachtsbeleuchtung_Steuerung normal - alle Shelly on
setstate Weihnachtsbeleuchtung_Steuerung 2025-11-24 14:28:55 .eM off
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-19 13:35:34 Device LW.I1.Lichtsensor_Garage
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 15:03:15 Status normal - alle Shelly on
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 15:04:14 cmd 0
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-19 13:35:34 e_LW.I1.Lichtsensor_Garage_STATE off
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 15:04:14 mode enabled
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 15:04:14 state initialized
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 23:59:00 timer_01_c03 19.01.2026 06:00:00
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 23:59:00 timer_02_c03 19.01.2026 23:59:00
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 23:59:00 timer_03_c04 19.01.2026 06:00:00
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-18 23:59:00 timer_04_c04 19.01.2026 23:59:00
setstate Weihnachtsbeleuchtung_Steuerung 2026-01-19 00:00:00 timer_05_c05 20.01.2026 00:00:00
Zitat von: rudolfkoenig am 02 September 2019, 08:55:33MQTT2_CLIENT legt keine Geraete automatisch an, das muss man mit "attr ttnBroker autocreate simple" anfordern.
Achtung: daraufhin wird genau _ein_ MQTT2_DEVICE angelegt, das dann automatisch das readingsList Attribut pflegt, um MQTT-Nachrichten in Reading+Event zu wandeln.
Wenn man Nachrichten an dem MQTT Server senden will, dann muss man das im MQTT2_DEVICE per setList Attribut erst beschreiben, danach hat man die entsprechenden set Befehle zur Verfuegung.
Alternativ (zu autocreate) legt man alle MQTT2_DEVICE Instanzen selbst an, samt readingsList und setList.
-) bei mir ableiten.SMA_Elgris_EM2
type=heatpump
power=2500
icon=sani_heating_heatpump@orange
pcurr=Bezug_Wirkleistung:W
etotal=Bezug_Wirkleistung_Zaehler:kWh
noshow=0
switchdev=MQTT_EMSwp
swstate=boiler_data_hpcompon:1:off
comforttemp=20
Zitat von: DS_Starter am 18 Januar 2026, 22:23:32Im Consumer Typ "heatpump" ist der Schlüssel swstate nun obligatorisch:Für mich ist noch nicht klar, wie die realen Werte der Energie in den KI-Algorithmus eingehen. Stellt die aktuelle Gesamtleistung die Berechnungsgrundlage dar oder fließen die einzelnen Verbraucher - also nicht nur type=heatpump - mit ihren jeweils aktuell anstehenden Leistungen getrennt ein? Bei getrennter Erfassung könnte die Auswertung von EIN/AUS-Signalen auch anderer großer Verbraucher durch die eindeutige Zuordnung der Verbräuche die Mustererkennung und damit die Treffsicherheit der Prognose für die Wärmepumpe aber auch insgesamt u U. weiter verbessern.
swstate
Abweichend von anderen Consumern ist die Angabe verpflichtend, auch wenn der default verwendet werden soll. Durch Erstellung eines passenden
userReadings kann gesteuert werden, ob man sowohl Laufzeiten für Heiz- und Kühlbetrieb, Warmwassererzeugung und Heizstabbetrieb zusammenfassen will, oder ob man ausschließlich die Laufzeiten des Heiz- und Kühlbetriebs als Zeiten für die Heizung separieren möchte.
Das ist eine wichtige Kleinigkeit, weil ich dadurch die On-Minuten für jede einzelne Stunde erfassen und in entsprechenden Semantiken der KI verfügbar machen kann.