Hallo,
ich würde gerne wissen welche zigbee template ich am besten für Heizthermostat (Eurotronic) nehme.
Hier das List.
Internals:
CFGFN
CID zigbee_0x00158d00053d40b1
DEF zigbee_0x00158d00053d40b1
DEVICETOPIC MQTT2_zigbee_0x00158d00053d40b1
FUUID 5f85f1f6-f33f-a4d3-d1cc-6f6210fa0277a25c
IODev MQTT2
LASTInputDev MQTT2
MQTT2_MSGCNT 2
MQTT2_TIME 2020-10-13 20:29:19
MSGCNT 2
NAME MQTT2_zigbee_0x00158d00053d40b1
NR 19995
STATE ???
TYPE MQTT2_DEVICE
READINGS:
2020-10-13 20:29:10 associatedWith MQTT2_MQTT2
2020-10-13 20:29:19 battery 100
2020-10-13 20:29:19 current_heating_setpoint 30
2020-10-13 20:29:19 eurotronic_error_status 0
2020-10-13 20:29:19 eurotronic_system_mode 5
2020-10-13 20:29:19 linkquality 60
2020-10-13 20:29:19 local_temperature 20
2020-10-13 20:29:19 occupied_heating_setpoint 30
2020-10-13 20:29:19 pi_heating_demand 255
2020-10-13 20:29:19 unoccupied_heating_setpoint 16
Attributes:
IODev MQTT2
readingList zigbee2mqtt/0x00158d00053d40b1:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
Ich dachte dass ich in der Template Liste etwas passende finde, aber dem ist leider nicht so.
Danke für ein paar gute Tips.
Jochen
Habe eben noch dies hier gefunden:
define Thermostat HUEDevice sensor 24 IODev=MQTT2
Legt ein device an, indem auch das passende template für den Heizthermostat ist
Internals:
CFGFN
DEF sensor 24 IODev=MQTT2
FUUID 5f8600f7-f33f-a4d3-e134-7c14066fb2545f70
FVERSION 31_HUEDevice.pm:0.206760/2019-12-07
ID S24
INTERVAL
IODev MQTT2
NAME Thermostat_Wohnzimmer
NR 20112
STATE Initialized
TYPE HUEDevice
helper:
devtype S
reachable 0
update_timeout 1
configList:
cmds:
lock {"locked": true }
unlock {"locked": false }
regex:
HASH(0x45ab5d8)
HASH(0x45c8840)
HASH(0x3f2efc0)
setList:
Attributes:
IODev MQTT2
configList /mode (.*)/:{"mode":"$1"}
/heatsetpoint (.*)/:perl:{'{"heatsetpoint":' . $VALUE1 * 100 . '}'}
/displayflipped (.*)/:{"displayflipped": $1 }
lock:{"locked": true }
unlock:{"locked": false }
icon max_heizungsthermostat
room test
widgetOverride mode:auto,heat,off displayflipped:true,false heatsetpoint:16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22
wie bekommen ich hier die richtigen EInstellung rein, damit das Thermostat steuerbar wird?
Danke
?!?
Was denn nun? HUEDevice o. MQTT2?
Du kannst gerne für m2devicr eins erstellen, Anleitung findest du im MQTT-Bereich ;) .
Hallo Beta-User,
ich habe MQTT2 (keine Hue Bridge) bei mir am laufen und möchte nun den Heizthermostat einbinden. Erkannt wurde er durch MQTT2 beim Koppeln, aber es gibt kein passende template dafür ?
m2devicr wo kann ich dazu was lesen ?
kann ich einen link haben?
Könnte man das hue template für mqtt2 anpassen?
Sorry, auf dem Handy ist tippen einfach nicht so meins...
Da das eher ein kompliziertes Ding zu sein scheint, habe ich jetzt mal aus der Hüfte geschossen und eine erste Version erstellt. Vielleicht magst du den mal austesten...?
Für das heutige update war ich etwas zu spät dran, also entweder auf morgen (das normale update ab 8:00 Uhr) warten oder die template-File aus dem svn holen, z.B. mit { Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
Keine Garantie für gar nichts...
Wow, das ging aber schnell - vielen Dank.
Ich probiere es aus und melde mich
Nachtrag:
Mein FHEM gibt mir diese Antwort.
Undefined subroutine &main::Svn_GetFile called at (eval 1237018) line 1.
Dann probiere ich morgen das update
so update ist erledigt. Und sehe jetzt das template "zigbee2mqtt_eurotronic_spirit"
bekomme beim Anwenden folgende Rückfrage:
Specify the unknown parameters for zigbee2mqtt_eurotronic_spirit:
base topic set in configuration.yaml of the zigbee2mqtt bridge
name of the device in the zigbee2mqtt bridge
base topic habe ich aus "MQTT2_MQTT2" readings BASE die Zahl eingetragen
name of device habe ich "MQTT2_zigbee_0x00158d00053d40b1" eingetragen.
Hier ist das list des Geräts: Einige der ursprünglichen Readings werden nun nicht mehr angezeigt
Internals:
CID zigbee_0x00158d00053d40b1
DEF zigbee_0x00158d00053d40b1
DEVICETOPIC 18/MQTT2_zigbee_0x00158d00053d40b1
FUUID 5f85f1f6-f33f-a4d3-d1cc-6f6210fa0277a25c
IODev MQTT2
NAME MQTT2_zigbee_0x00158d00053d40b1
NR 334
STATE Measured: measured-temp Battery: battery %
TYPE MQTT2_DEVICE
JSONMAP:
current_heating_setpoint desired-temp
local_temperature measured-temp
occupied_heating_setpoint daytemp
unoccupied_heating_setpoint nighttemp
OLDREADINGS:
READINGS:
2020-10-13 23:44:12 associatedWith MQTT2_MQTT2
2020-10-15 19:46:49 attrTemplateVersion 20201014
2020-10-15 19:51:39 daytemp set 23.5
Attributes:
IODev MQTT2
alias Eurotronic
devicetopic 18/MQTT2_zigbee_0x00158d00053d40b1
icon hm-cc-rt-dn
jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
model zigbee2mqtt_eurotronic_spirit
readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
setStateList on off
stateFormat Measured: measured-temp Battery: battery %
webCmd desired-temp
widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
Habe gerade noch ein paar Einstellung eingestellt. Neues List:
Internals:
CID zigbee_0x00158d00053d40b1
DEF zigbee_0x00158d00053d40b1
DEVICETOPIC 18/MQTT2_zigbee_0x00158d00053d40b1
FUUID 5f85f1f6-f33f-a4d3-d1cc-6f6210fa0277a25c
IODev MQTT2
NAME MQTT2_zigbee_0x00158d00053d40b1
NR 334
STATE Measured: measured-temp Battery: battery %
TYPE MQTT2_DEVICE
JSONMAP:
current_heating_setpoint desired-temp
local_temperature measured-temp
occupied_heating_setpoint daytemp
unoccupied_heating_setpoint nighttemp
OLDREADINGS:
READINGS:
2020-10-13 23:44:12 associatedWith MQTT2_MQTT2
2020-10-15 19:46:49 attrTemplateVersion 20201014
2020-10-15 19:56:43 child_protection set false
2020-10-15 19:51:39 daytemp set 23.5
2020-10-15 19:55:58 desired-temp set 30
2020-10-15 19:56:11 nighttemp set 12.0
2020-10-15 19:56:23 window_open set false
Attributes:
IODev MQTT2
alias Eurotronic
devicetopic 18/MQTT2_zigbee_0x00158d00053d40b1
icon hm-cc-rt-dn
jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
model zigbee2mqtt_eurotronic_spirit
readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
setStateList on off
stateFormat Measured: measured-temp Battery: battery %
webCmd desired-temp
widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
set daytemp etc scheint nicht beim Thermostat anzukommen....
Gruß
Jochen
Du machst aber auch Sachen... Erst das Ausgangsdevice "zerstören" und dann glauben, dass aus der Hüfte schießen eine gute Idee ist ;D ;D ;D ;D .
Setz' mal devicetopic auf zigbee2mqtt/0x00158d00053d40b1...
Und bitte wenn's geht ab jetzt RAW-Definition-Code posten, das kann ich leichter in einem Testsystem verwursten. (Knopf ganz unten oder list -r DEVICE).
Nunja, bin kein Programmierer sondern nur Anwender .....
UND ich bin dankbar für deine Hilfe (und der anderen alten Hasen) hier im Forum
define MQTT2_zigbee_0x00158d00053d40b1 MQTT2_DEVICE zigbee_0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 IODev MQTT2
attr MQTT2_zigbee_0x00158d00053d40b1 alias Eurotronic
attr MQTT2_zigbee_0x00158d00053d40b1 devicetopic zigbee2mqtt/0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 icon hm-cc-rt-dn
attr MQTT2_zigbee_0x00158d00053d40b1 jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
attr MQTT2_zigbee_0x00158d00053d40b1 model zigbee2mqtt_eurotronic_spirit
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }\
zigbee2mqtt/0x00158d00053d40b1/set:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_0x00158d00053d40b1 room MQTT2_DEVICE
attr MQTT2_zigbee_0x00158d00053d40b1 setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}\
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }\
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}\
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
attr MQTT2_zigbee_0x00158d00053d40b1 setStateList on off
attr MQTT2_zigbee_0x00158d00053d40b1 stateFormat Measured: measured-temp Battery: battery %
attr MQTT2_zigbee_0x00158d00053d40b1 webCmd desired-temp
attr MQTT2_zigbee_0x00158d00053d40b1 widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
setstate MQTT2_zigbee_0x00158d00053d40b1 Measured: measured-temp Battery: battery %
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:03:00 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:01:33 attrTemplateVersion 20201014
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:06:51 child_protection set false
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:03:00 current_heating_setpoint 27
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:05:04 daytemp set 20.0
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:03:00 desired-temp set 27
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:06:51 eurotronic_host_flags_child_protection false
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:06:28 eurotronic_host_flags_window_open false
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:06:39 nighttemp set 10.0
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:05:04 occupied_heating_setpoint 20.0
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:06:40 unoccupied_heating_setpoint 10.0
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:06:28 window_open set false
Hmm, da hatte ich zwei wichtige Dinge unterschlagen bzw. übersehen...
Zum einen braucht das jsonMap auch eine entsprechende Anweisung in der readingList, damit es übernommen wird:
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $\DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
Dann muss das noch erweitert werden. Da wäre es nicht schlecht, wenn du das vorhandene ausbauen könntest (das benennt nur die "eingehenden Readings" um. Im Ergebnis sollten die dann zu den ausgehenden Readings passen ;) ).
Wir haben aber noch ein ganz anderes, größeres Problem. Das hierzigbee2mqtt/0x00158d00053d40b1/set:.* { json2nameValue($EVENT) }
darf gar nicht sein - da kommt 1:1 das zurück, was du versendet hast. Als "hotfix" kannst du einfach die Perl-Anweisung leeren, also aus der Zeile das hier machen:
zigbee2mqtt/0x00158d00053d40b1/set:.* {}
Das kommt aber bitte nicht so in das attrTemplate, das Problem kommt mit einiger Sicherheit daher, dass du einen externen Broker am Start hast? Siehe auch https://wiki.fhem.de/wiki/MQTT#Welche_Infos_sollten_Anfragen_im_MQTT-Forum_enthalten.3F
Das ist an anderer Stelle zu lösen, nämlich durch eine passende ignoreRegexp am IO. (Da fehlt m.E. auch noch etwas Doku dazu).
Falls das mit MQTT2_CLIENT stimmt, wende mal bitte (auf ein MQTT2_DEVICE) das attrTemplate MQTT2_IO_ignoreRegexp_basic an und ergänze dann den Ausdruck in dem Attribut (am CLIENT) mit
|zigbee2mqtt/[^/]+/set
danke für die Rückmeldung.
Ich hatte mal mosquitto - habe aber auf MQTT2 umgestellt.
Internals:
BUF
DEF 127.0.0.1:1883
DeviceName 127.0.0.1:1883
FD 4
FUUID 5d8bc521-f33f-a4d3-86ba-bc842723e15ec84e
NAME MQTT2
NR 151
PARTIAL
STATE opened
TYPE MQTT2_CLIENT
WBCallback
clientId MQTT2
lastMsgTime 1602871837.69719
nextOpenDelay 5
READINGS:
2020-10-16 06:21:20 state opened
Attributes:
autocreate no
group autocreate
room MQTT2_DEVICE,System->System
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $\DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
habe ich angewandt.
das 2. Problem habe ich nicht verstanden
Hmm, also...
in der readingList hatte ich übersehen, dass das "\" in den templates notwendig ist, um das Ersetzen von DEVICE zu verhindern. Das müsste also (in deinem speziellen Fall) eigentlich insgesamt dann so passen (RAW-Format...):
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/set:.* {}
Ich habe eben auch noch ein update ins svn geschoben, mit dem dann der erste Teil der readingList korrekt sein müßte.
Was den 2. Punkt angeht: Ich sehe MQTT2_CLIENT, das sagt aber nichts darüber aus, welcher Server dahinter läuft. Falls du auch einen MQTT2_SERVER hast ("list TYPE=MQTT2_SERVER" würde dazu was sagen), brauchst du den CLIENT nicht mehr und solltest das IO aller Devices von diesem CLIENT einfach direkt auf den SERVER umstellen und dieses CLIENT-IO löschen.
Solange du (egal mit welchem Broker) MQTT2_CLIENT als IO-Modul nutzt, wirst du immer verhindern müssen, dass ausgehende Befehle _nicht_ an das sendende FHEM-Device weitergeben werden, sondern nur die Rückmeldung von der Hardware. Ansatzpunkte, wie das geht, hatte ich aufgezeigt, zu noch mundgerechterer Aufbereitung fehlt mir grade die Zeit.
Hallo Beta user,
danke für deine Zeit.
list TYPE=MQTT2_SERVER
gibt keine Antwort
ich habe deinen code in der raw Definition angewandt.
(Mit den Eingabefeldern gab es eine Fehlermeldung)
defmod MQTT2_zigbee_0x00158d00053d40b1 MQTT2_DEVICE zigbee_0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 IODev MQTT2
attr MQTT2_zigbee_0x00158d00053d40b1 alias Eurotronic
attr MQTT2_zigbee_0x00158d00053d40b1 devicetopic zigbee2mqtt/0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 icon hm-cc-rt-dn
attr MQTT2_zigbee_0x00158d00053d40b1 jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
attr MQTT2_zigbee_0x00158d00053d40b1 model zigbee2mqtt_eurotronic_spirit
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/set:.* {}
attr MQTT2_zigbee_0x00158d00053d40b1 room MQTT2_DEVICE
attr MQTT2_zigbee_0x00158d00053d40b1 setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}\
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }\
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}\
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
attr MQTT2_zigbee_0x00158d00053d40b1 setStateList on off
attr MQTT2_zigbee_0x00158d00053d40b1 stateFormat Measured: measured-temp Battery: battery %
attr MQTT2_zigbee_0x00158d00053d40b1 webCmd desired-temp
attr MQTT2_zigbee_0x00158d00053d40b1 widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
setstate MQTT2_zigbee_0x00158d00053d40b1 Measured: measured-temp Battery: battery %
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-15 23:03:00 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-16 19:57:20 attrTemplateVersion 20201014
Bei den Readings kommen keine Informationen mehr rein
Internals:
CID zigbee_0x00158d00053d40b1
DEF zigbee_0x00158d00053d40b1
DEVICETOPIC zigbee2mqtt/0x00158d00053d40b1
FUUID 5f85f1f6-f33f-a4d3-d1cc-6f6210fa0277a25c
IODev MQTT2
NAME MQTT2_zigbee_0x00158d00053d40b1
NR 334
STATE Measured: measured-temp Battery: battery %
TYPE MQTT2_DEVICE
JSONMAP:
current_heating_setpoint desired-temp
local_temperature measured-temp
occupied_heating_setpoint daytemp
unoccupied_heating_setpoint nighttemp
OLDREADINGS:
READINGS:
2020-10-15 23:03:00 associatedWith MQTT2_MQTT2
2020-10-16 19:57:20 attrTemplateVersion 20201014
Attributes:
IODev MQTT2
alias Eurotronic
devicetopic zigbee2mqtt/0x00158d00053d40b1
icon hm-cc-rt-dn
jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
model zigbee2mqtt_eurotronic_spirit
readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
$DEVICETOPIC/set:.* {}
room MQTT2_DEVICE
setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
setStateList on off
stateFormat Measured: measured-temp Battery: battery %
webCmd desired-temp
widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
(Ich habe einige Sonoff mit Tasmota und hier bekomme ich die Rückmeldung über Temperature oder manuelle Schaltungen.)
Zitat von: Müller am 17 Oktober 2020, 09:25:54
list TYPE=MQTT2_SERVER
gibt keine Antwort
Ergo verwendest du vermutlich noch mosquitto.
MMn. kannst und solltest du das baldmöglichst umstellen, für weniger erfahrenere Anwender ist MQTT2_SERVER die bessere Wahl. Im MQTT-Bereich des Forums hatte ich irgendwo auch was zur Vorgehensweise geschrieben.
Zitatich habe deinen code in der raw Definition angewandt.
(Mit den Eingabefeldern gab es eine Fehlermeldung)
(1. Ja, in der Regel poste ich im MQTT2-Kontext immer RAW-Code.
2. Falls du dazu Hilfe erwartest: welche Fehlermeldung...? So kann ich das nur zur Kenntnis nehmen.)
ZitatBei den Readings kommen keine Informationen mehr rein
Das kann ich so auch nicht wirklich zuordnen. Aus dem list hätte ich jetzt abgelesen, dass du bisher auch nicht versucht hast, z.B. eine neue Temperatur zu setzen.
Aber nach einer gewissen Zeit sollte der Thermostat dann aber schon eigentlich auch wieder eine aktuelle Ist-Temperatur senden. Gibt es denn zwischenzeitlich Readings und was passiert, wenn du eine neue Soll-Temperatur setzt?
Ansonsten wäre es wichtig, mal den MQTT-Verkehr mitzuverfolgen (z.B. mit mosquitto_sub oder über die rawEvents am IO-Device). Da müßte dann ja z.B. auch was zu sehen sein, wenn du am Thermostat was änderst.
Hallo Beta-User,
irgendwas habe ich mir wohl zerschossen? Bevor ich das template angewandt hatte kamen Infos zu Batterie und Isttemperatur. Nun sind in den readings nur die Attribute die ich gesetzt habe. Als ob die Verbindung nicht mehr da ist. Das Icon am Thermostat zeigt aber noch eine aktive Verbindung an. Hast du einen link für mich, wie man den MQTT-Verkehr mit verfolgen kann? danke
Internals:
CID zigbee_0x00158d00053d40b1
DEF zigbee_0x00158d00053d40b1
DEVICETOPIC zigbee2mqtt/0x00158d00053d40b1
FUUID 5f85f1f6-f33f-a4d3-d1cc-6f6210fa0277a25c
IODev MQTT2
LASTInputDev MQTT2
MQTT2_MSGCNT 3
MQTT2_TIME 2020-10-20 06:38:13
MSGCNT 3
NAME MQTT2_zigbee_0x00158d00053d40b1
NR 334
STATE Measured: measured-temp Battery: battery %
TYPE MQTT2_DEVICE
JSONMAP:
current_heating_setpoint desired-temp
local_temperature measured-temp
occupied_heating_setpoint daytemp
unoccupied_heating_setpoint nighttemp
READINGS:
2020-10-20 06:20:49 associatedWith MQTT2_MQTT2
2020-10-20 06:15:29 attrTemplateVersion 20201014
2020-10-20 06:37:48 boost set true
2020-10-20 06:20:49 current_heating_setpoint 17.5
2020-10-20 06:38:07 daytemp set 8.5
2020-10-20 06:20:49 desired-temp set 17.5
2020-10-20 06:37:48 eurotronic_host_flags_boost true
2020-10-20 06:38:13 nighttemp set 8.0
2020-10-20 06:38:07 occupied_heating_setpoint 8.5
2020-10-20 06:38:13 unoccupied_heating_setpoint 8.0
Attributes:
IODev MQTT2
alias Eurotronic
devicetopic zigbee2mqtt/0x00158d00053d40b1
icon hm-cc-rt-dn
jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
model zigbee2mqtt_eurotronic_spirit
readingList $\DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
zigbee2mqtt/0x00158d00053d40b1/set:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
setStateList on off
stateFormat Measured: measured-temp Battery: battery %
webCmd desired-temp
widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
defmod MQTT2_zigbee_0x00158d00053d40b1 MQTT2_DEVICE zigbee_0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 IODev MQTT2
attr MQTT2_zigbee_0x00158d00053d40b1 alias Eurotronic
attr MQTT2_zigbee_0x00158d00053d40b1 devicetopic zigbee2mqtt/0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 icon hm-cc-rt-dn
attr MQTT2_zigbee_0x00158d00053d40b1 jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
attr MQTT2_zigbee_0x00158d00053d40b1 model zigbee2mqtt_eurotronic_spirit
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $\DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
zigbee2mqtt/0x00158d00053d40b1/set:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_0x00158d00053d40b1 room MQTT2_DEVICE
attr MQTT2_zigbee_0x00158d00053d40b1 setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}\
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }\
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}\
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
attr MQTT2_zigbee_0x00158d00053d40b1 setStateList on off
attr MQTT2_zigbee_0x00158d00053d40b1 stateFormat Measured: measured-temp Battery: battery %
attr MQTT2_zigbee_0x00158d00053d40b1 webCmd desired-temp
attr MQTT2_zigbee_0x00158d00053d40b1 widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
setstate MQTT2_zigbee_0x00158d00053d40b1 Measured: measured-temp Battery: battery %
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:20:49 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:15:29 attrTemplateVersion 20201014
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:37:48 boost set true
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:20:49 current_heating_setpoint 17.5
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:38:07 daytemp set 8.5
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:20:49 desired-temp set 17.5
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:37:48 eurotronic_host_flags_boost true
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:38:13 nighttemp set 8.0
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:38:07 occupied_heating_setpoint 8.5
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 06:38:13 unoccupied_heating_setpoint 8.0
Nochmal eine Leseanleitung für das hier:
Zitat von: Beta-User am 17 Oktober 2020, 07:32:07
Hmm, also...
in der readingList hatte ich übersehen, dass das "\" in den templates notwendig ist, um das Ersetzen von DEVICE zu verhindern. Das müsste also (in deinem speziellen Fall) eigentlich insgesamt dann so passen (RAW-Format...):
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/set:.* {}
Ich habe eben auch noch ein update ins svn geschoben, mit dem dann der erste Teil der readingList korrekt sein müßte.
Der "\" in der readingList ist vor "DEVICETOPIC" (als Ergebnis in der Konfiguration) falsch. Du hast jetzt 2 Optionen:
1. Entferne den "\" händisch aus deiner readingList;
2. zieh' ein update - entweder gleich via Svn_GetFile()-Befehl, oder eben ab dem nächsten Morgen um 8:00 Uhr und wende das attrTemplate neu an.
(Da du CLIENT verwendest und das ingoreRegexp am IO vermutlich immer noch nicht gesetzt hast, wäre Weg 1 zu empfehlen...).
Generell: Wenn irgendetwas nicht klappt, lies doch bitte einfach nochmal zumindest den Thread in Ruhe durch, vielleicht steht da schon, was du brauchst...
Hallo, danke für die Hilfe:
Habe nun ingnoreRegeexp angewandt
defmod MQTT2 MQTT2_CLIENT 127.0.0.1:1883
attr MQTT2 autocreate no
attr MQTT2 group autocreate
attr MQTT2 ignoreRegexp |zigbee2mqtt/[^/]+/set
attr MQTT2 room MQTT2_DEVICE,System->System
setstate MQTT2 opened
setstate MQTT2 2020-10-18 18:40:03 lastPublish cmnd/DVES_002DA3/Backlog:StateText1 off;; StateText2 on;; StateText3 toggle;; StateText4 hold;; SetOption26 1;; SaveData 1
setstate MQTT2 2020-10-20 19:49:59 state opened
und bei Thermostat den readingList geändert
defmod MQTT2_zigbee_0x00158d00053d40b1 MQTT2_DEVICE zigbee_0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 IODev MQTT2
attr MQTT2_zigbee_0x00158d00053d40b1 alias Eurotronic
attr MQTT2_zigbee_0x00158d00053d40b1 devicetopic zigbee2mqtt/0x00158d00053d40b1
attr MQTT2_zigbee_0x00158d00053d40b1 icon hm-cc-rt-dn
attr MQTT2_zigbee_0x00158d00053d40b1 jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
attr MQTT2_zigbee_0x00158d00053d40b1 model zigbee2mqtt_eurotronic_spirit
attr MQTT2_zigbee_0x00158d00053d40b1 readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/set:.* {}
attr MQTT2_zigbee_0x00158d00053d40b1 room MQTT2_DEVICE
attr MQTT2_zigbee_0x00158d00053d40b1 setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}\
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }\
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}\
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
attr MQTT2_zigbee_0x00158d00053d40b1 setStateList on off
attr MQTT2_zigbee_0x00158d00053d40b1 stateFormat Measured: measured-temp Battery: battery %
attr MQTT2_zigbee_0x00158d00053d40b1 webCmd desired-temp
attr MQTT2_zigbee_0x00158d00053d40b1 widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
setstate MQTT2_zigbee_0x00158d00053d40b1 Measured: measured-temp Battery: battery %
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 19:57:20 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 19:56:30 attrTemplateVersion 20201014
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-21 18:51:20 current_heating_setpoint 5
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-21 18:58:33 daytemp set 15.5
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-21 18:58:45 desired-temp set 23
setstate MQTT2_zigbee_0x00158d00053d40b1 2020-10-20 19:57:20 occupied_heating_setpoint 12.5
eingetragen
Hm, meine anderen zigbee Geräte geben keine Rückmeldung an Fhem....
jetzt habe das ingnoreRegeexp wieder gelöscht
Zitat von: Beta-User am 16 Oktober 2020, 07:07:28
Falls das mit MQTT2_CLIENT stimmt, wende mal bitte (auf ein MQTT2_DEVICE) das attrTemplate MQTT2_IO_ignoreRegexp_basic an und ergänze dann den Ausdruck in dem Attribut (am CLIENT) mit
|zigbee2mqtt/[^/]+/set
... da stand was von "ergänzen"...
Wenn du das "solo" verwenden willst, muß der "oder"-Pipe weg, das ist - wie der Name schon sagt - ein regex-Ausdruck. Für sich alleine muß es also heißen:
zigbee2mqtt/[^/]+/set
Tipp: Schau dir mal (ohne das Attribut gesetzt zu haben) den Event-Monitor an, wenn du was schaltest, das funktioniert (egal was, es "klappt" auch mit einem Tasmota oder einem anderen zigbee-Gerät). Da solltest du dann immer ein "Doppelevent" haben. Das Doppeln müßte durch das Rausfiltern des "set"-Topic verhindert werden.
Hallo beta user,
ich habe nun eine Osram zigbee Lampe geschaltet
2020-10-22 11:23:05 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 set_on
2020-10-22 11:23:05 readingsProxy Proxy3 ON
2020-10-22 11:23:05 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 ON
2020-10-22 11:23:06 readingsProxy Proxy3 ON
2020-10-22 11:23:06 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 linkquality: 47
2020-10-22 11:23:06 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 brightness: 165
2020-10-22 11:23:06 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 ON
bei einem Tasmota Schalter kommt dies hier im Event Monitor
2020-10-22 11:19:33 MQTT2_DEVICE MQTT2_Poolpumpe set_on
2020-10-22 11:19:33 MQTT2_DEVICE MQTT2_MQTT2 POWER1: on
2020-10-22 11:19:33 readingsProxy Poolpumpe on
2020-10-22 11:19:33 MQTT2_DEVICE MQTT2_Poolpumpe POWER1: on
2020-10-22 11:19:33 MQTT2_DEVICE MQTT2_MQTT2 POWER1: on
2020-10-22 11:22:08 MQTT2_DEVICE MQTT2_Poolpumpe set_off
2020-10-22 11:22:08 MQTT2_DEVICE MQTT2_MQTT2 POWER1: off
2020-10-22 11:22:08 readingsProxy Poolpumpe off
2020-10-22 11:22:08 MQTT2_DEVICE MQTT2_Poolpumpe POWER1: off
2020-10-22 11:22:08 MQTT2_DEVICE MQTT2_MQTT2 POWER1: off
Mein
attr MQTT2 ignoreRegexp zigbee2mqtt/[^/]+/set
war vorher komplett leer, daher war hier nix zu ergänzen.
jetzt habe ich es geändert und im eventMonitor kommt dies
2020-10-22 11:29:26 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 set_on
2020-10-22 11:29:26 readingsProxy Proxy3 ON
2020-10-22 11:29:26 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 ON
2020-10-22 11:29:26 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 brightness: 165
2020-10-22 11:29:26 MQTT2_DEVICE MQTT2_zigbee_0x7cb03eaa0a05a342 linkquality: 47
oder
2020-10-22 11:29:59 MQTT2_DEVICE MQTT2_Poolpumpe set_on
2020-10-22 11:29:59 readingsProxy Poolpumpe on
2020-10-22 11:29:59 MQTT2_DEVICE MQTT2_Poolpumpe POWER1: on
2020-10-22 11:29:59 MQTT2_DEVICE MQTT2_MQTT2 POWER1: on
2020-10-22 11:29:59 MQTT2_DEVICE MQTT2_MQTT2 POWER1: on
Gruß
...qed. Die Events sind weniger geworden...
Du solltes m.E. noch ein paar Punkte ändern:
- zum einen: Ergänze entsprechende ignoreRegexp auch für Tasmota & Co, das kann man auch über ein attrTemplate erledigen (das hatte ich schon vorgeschlagen, und dann wäre auch was zu ergänzen gewesen...), kann aber sein, dass das nicht (vollständig) klappt;
- dann schaust du dir mal die readingList von dem "Sammeldevice" MQTT2_MQTT2 an. Das ist vermutlich "Kraut und Rüben" und fängt auch einen Teil der set-Befehle ein;
- Was die readingsProxys bringen, erschließt sich mir nicht. MMn. machen die das ganze hier nur unübersichticher bzw. sind eine Folge von fehlenden bridgeRegexp-Ausdrücken iVm. dem CLIENT. Eigentlich sollte es für jeden Tasmota (mind.) ein MQTT2_DEVICE geben, und "gut ist";
- überhaupt CLIENT: steig' bei nächster Gelegenheit auf MQTT2_SERVER um. Du wirst dich viel leichter tun und direkt (nach etwas "Aufräumen") einige der mit den readingsProxys vermeintlich gelösten Probleme nicht mehr haben;
- du kannst die automatisch erstellten Device-Namen ruhig ändern.
Ansonsten würde mich dann wieder interessieren, was denn jetzt mit dem Thermostat ist. Klappt das bzw. kommt da dann auch was vernünftiges zurück, nachdem das mit der ignoreRegexp jetzt gefixt ist?
Hallo,
der Thermostat hat nichts mehr an FHEM gesendet:
Internals:
CID zigbee_0x00158d00053d40b1
DEF zigbee_0x00158d00053d40b1
DEVICETOPIC zigbee2mqtt/0x00158d00053d40b1
FUUID 5f85f1f6-f33f-a4d3-d1cc-6f6210fa0277a25c
IODev MQTT2
LASTInputDev MQTT2
MQTT2_MSGCNT 4
MQTT2_TIME 2020-10-21 18:51:20
MSGCNT 4
NAME MQTT2_zigbee_0x00158d00053d40b1
NR 334
STATE Measured: measured-temp Battery: battery %
TYPE MQTT2_DEVICE
JSONMAP:
current_heating_setpoint desired-temp
local_temperature measured-temp
occupied_heating_setpoint daytemp
unoccupied_heating_setpoint nighttemp
OLDREADINGS:
READINGS:
2020-10-20 19:57:20 associatedWith MQTT2_MQTT2
2020-10-20 19:56:30 attrTemplateVersion 20201014
2020-10-21 18:51:20 current_heating_setpoint 5
2020-10-21 18:58:33 daytemp set 15.5
2020-10-21 18:58:45 desired-temp set 23
2020-10-20 19:57:20 occupied_heating_setpoint 12.5
Attributes:
IODev MQTT2
alias Eurotronic
devicetopic zigbee2mqtt/0x00158d00053d40b1
icon hm-cc-rt-dn
jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
model zigbee2mqtt_eurotronic_spirit
readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
$DEVICETOPIC/set:.* {}
room MQTT2_DEVICE
setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
setStateList on off
stateFormat Measured: measured-temp Battery: battery %
webCmd desired-temp
widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
...die Anweisungen, die hier zu sehen sind, stammen von vor der Änderung des ignoreRegexp-Ausdrucks, oder?
Bitte neue Anweisungen absetzen, der Thermostat hat die vermutlich schon lange verarbeitet, und von alleine wird er nicht nochmal eine Vollzugsmeldung zurücksenden...
Btw.: "Extra für dich" habe ich im Wiki ein paar Abschnitte zu ignoreRegexp ergänzt. Bitte um Feedback ;) .
https://wiki.fhem.de/wiki/MQTT2_CLIENT#ignoreRegexp (https://wiki.fhem.de/wiki/MQTT2_CLIENT#ignoreRegexp)
https://wiki.fhem.de/wiki/MQTT#FHEM_als_MQTT-Server (https://wiki.fhem.de/wiki/MQTT#FHEM_als_MQTT-Server)
Hallo beta user,
die Anweisungen hatte ich angewandt. Der Thermostat steht am Gerät auf einer anderen Temperatur wie in Fhem. Da scheint keine Kommunikation zu sein. Ich probiere mal den Thermostat zurückzusetzen und neu anzulernen.
zu Wiki melde ich mich später
OK, dann wären wir wieder bei diesem Punkt:
Zitat von: Beta-User am 19 Oktober 2020, 08:32:42
Ansonsten wäre es wichtig, mal den MQTT-Verkehr mitzuverfolgen (z.B. mit mosquitto_sub oder über die rawEvents am IO-Device). Da müßte dann ja z.B. auch was zu sehen sein, wenn du am Thermostat was änderst.
Hallo,
Hab in die Wiki geschaut, aber mir ist nicht ganz klar was ich bei raawevents eintragen muß, um den Verkehr zu verfolgen
Lt. commandref ist es eine regex.
Für's erste würde ich empfehlen, dass du mal mit ".*" (für "alles") startest und dann mal im Event-Monitor lauschst, was da so alles ankommt (die dortige regex auf den CLIENT beschränken.
Dann kannst du weiter verfeinern und ein wenig regex üben. Anleitungen dafür wären unter z.B. www.regex101.com zu finden.
(ansonsten hilft dir ggf. auch die manpage zu mosquitto_sub weiter, wenn du das Paket mit den mosquitto-clients auf deinem Server installiert hast).
Danke für die Anleitung. Hab ich gemacht. Habe am Thermostat die Temperaturen manuell verändert, aber im Eventmonitor kam nichts an.
(Vielleicht habe ich da ein Montagsgerät erwischt)
Hmm, Nachrichten von anderen Geräten siehst du aber, oder?
Wenn ja, liegt es entweder am Sendeformat (den Test mit und ohne """ hatte ich schon ganz am Anfang mal erwähnt, oder?), oder du solltest dich dann mal an die zigbee2mqtt-Gemeinde wenden und dort nachfragen, ob denn der Thermostat rückmeldet, wenn er was bekommen hat und wie ggf. die Messages genau aufgebaut sein müssen.
(Ich habe bisher auch nur geraten, aber irgendwo müßte es ja eine Art Doku geben...).
Ja die anderen Geräte sehe ich. Am Anfang sah ich auch Rückmeldung von diesem Thermostat, bevor ein template angewandt wurde.
READINGS:
2020-10-13 20:29:10 associatedWith MQTT2_MQTT2
2020-10-13 20:29:19 battery 100
2020-10-13 20:29:19 current_heating_setpoint 30
2020-10-13 20:29:19 eurotronic_error_status 0
2020-10-13 20:29:19 eurotronic_system_mode 5
2020-10-13 20:29:19 linkquality 60
2020-10-13 20:29:19 local_temperature 20
2020-10-13 20:29:19 occupied_heating_setpoint 30
2020-10-13 20:29:19 pi_heating_demand 255
2020-10-13 20:29:19 unoccupied_heating_setpoint 16
Ich habe die Config von FHEM bisher auch noch nicht gespeichert und nach dem Restart kam beim Thermostat auch nichts mehr an.
An den Test mit und ohne """ kann ich mich nicht errinnern.
Hallo Beta-User,
habe gestern mit Amazon "gechattet" und den Thermostat reklamiert und habe nun seit 30 min einen Ersatz in der Hand. Und es scheint zu funktionieren.
list
Internals:
CFGFN
CID zigbee_0x00158d00053d378e
DEF zigbee_0x00158d00053d378e
DEVICETOPIC zigbee2mqtt/0x00158d00053d378e
FUUID 5f941f82-f33f-a4d3-75cc-8d49d9e37e184e42
IODev MQTT2
LASTInputDev MQTT2
MQTT2_MSGCNT 13
MQTT2_TIME 2020-10-24 14:53:11
MSGCNT 13
NAME MQTT2_zigbee_0x00158d00053d378e
NR 1639
STATE Measured: 22 Battery: battery %
TYPE MQTT2_DEVICE
JSONMAP:
current_heating_setpoint desired-temp
local_temperature measured-temp
occupied_heating_setpoint daytemp
unoccupied_heating_setpoint nighttemp
OLDREADINGS:
READINGS:
2020-10-24 14:35:14 associatedWith MQTT2_MQTT2
2020-10-24 14:37:25 attrTemplateVersion 20201014
2020-10-24 14:53:11 daytemp 28
2020-10-24 14:53:11 desired-temp 28
2020-10-24 14:53:11 eurotronic_error_status 0
2020-10-24 14:53:11 eurotronic_system_mode 1
2020-10-24 14:53:11 measured-temp 22
2020-10-24 14:53:11 nighttemp 16
2020-10-24 14:53:11 pi_heating_demand 255
Attributes:
IODev MQTT2
alias Eurotronic2
devicetopic zigbee2mqtt/0x00158d00053d378e
icon hm-cc-rt-dn
jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
model zigbee2mqtt_eurotronic_spirit
readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
room MQTT2_DEVICE
setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
setStateList on off
stateFormat Measured: measured-temp Battery: battery %
webCmd desired-temp
widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
raw
defmod MQTT2_zigbee_0x00158d00053d378e MQTT2_DEVICE zigbee_0x00158d00053d378e
attr MQTT2_zigbee_0x00158d00053d378e IODev MQTT2
attr MQTT2_zigbee_0x00158d00053d378e alias Eurotronic2
attr MQTT2_zigbee_0x00158d00053d378e devicetopic zigbee2mqtt/0x00158d00053d378e
attr MQTT2_zigbee_0x00158d00053d378e icon hm-cc-rt-dn
attr MQTT2_zigbee_0x00158d00053d378e jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
attr MQTT2_zigbee_0x00158d00053d378e model zigbee2mqtt_eurotronic_spirit
attr MQTT2_zigbee_0x00158d00053d378e readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_zigbee_0x00158d00053d378e room MQTT2_DEVICE
attr MQTT2_zigbee_0x00158d00053d378e setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}\
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }\
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}\
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
attr MQTT2_zigbee_0x00158d00053d378e setStateList on off
attr MQTT2_zigbee_0x00158d00053d378e stateFormat Measured: measured-temp Battery: battery %
attr MQTT2_zigbee_0x00158d00053d378e webCmd desired-temp
attr MQTT2_zigbee_0x00158d00053d378e widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
setstate MQTT2_zigbee_0x00158d00053d378e Measured: 22 Battery: battery %
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:35:14 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:37:25 attrTemplateVersion 20201014
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 daytemp 28
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 desired-temp 28
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 eurotronic_error_status 0
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 eurotronic_system_mode 1
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 measured-temp 22
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 nighttemp 16
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:53:11 pi_heating_demand 255
Ich werde noch die Darstellung für mich anpassen und mal recherchieren was daytemp und nighttemp ist und wie man den Übergang definiert.
Hallo beta User,
nach einer gewissen Zeit kommen auch die readings bzgl. der Batterie herein.
Ich würde vorschlagen beim Template noch webcmd auf "daytemp" umzuändern, da dies offensichtlich die Stellgröße ist auf die der Thermostat reagiert.
pi_heating_demand gibt an ob geheizt wird (=255) oder nicht (0)
defmod MQTT2_zigbee_0x00158d00053d378e MQTT2_DEVICE zigbee_0x00158d00053d378e
attr MQTT2_zigbee_0x00158d00053d378e IODev MQTT2
attr MQTT2_zigbee_0x00158d00053d378e alias Eurotronic2
attr MQTT2_zigbee_0x00158d00053d378e devStateIcon 100:measure_battery_100@green 9[0-9]:measure_battery_100@green 8[0-9]:measure_battery_75@green 7[0-9]:measure_battery_75@green 6[0-9]:measure_battery_50@green 5[0-9]:measure_battery_50@green 4[0-9]:measure_battery_50@green 3[0-9]:measure_battery_25@green 2[0-9]:measure_battery_25@green 1[0-9]:measure_battery_25@red [1-9]:measure_battery_0@red 0:sani_heating_level_0@blue 255:sani_heating_level_100@red
attr MQTT2_zigbee_0x00158d00053d378e devicetopic zigbee2mqtt/0x00158d00053d378e
attr MQTT2_zigbee_0x00158d00053d378e jsonMap occupied_heating_setpoint:daytemp unoccupied_heating_setpoint:nighttemp current_heating_setpoint:desired-temp local_temperature:measured-temp
attr MQTT2_zigbee_0x00158d00053d378e model zigbee2mqtt_eurotronic_spirit
attr MQTT2_zigbee_0x00158d00053d378e readingList $DEVICETOPIC:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_zigbee_0x00158d00053d378e room MQTT2_DEVICE,test
attr MQTT2_zigbee_0x00158d00053d378e setList boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
child_protection:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"child_protection": $EVTPART1 }}\
desired-temp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"current_heating_setpoint": $EVTPART1 }\
daytemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"occupied_heating_setpoint": $EVTPART1 }\
nighttemp:slider,5.0,0.5,30.0,1 $DEVICETOPIC/set {"unoccupied_heating_setpoint": $EVTPART1 }\
window_open:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"window_open": $EVTPART1 }}\
boost:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"boost": $EVTPART1 }}\
x_mirror_display:true,false $DEVICETOPIC/set {"eurotronic_host_flags": {"mirror_display": $EVTPART1 }}
attr MQTT2_zigbee_0x00158d00053d378e setStateList on off
attr MQTT2_zigbee_0x00158d00053d378e stateFormat measured-temp °C\
pi_heating_demand\
battery\
battery %
attr MQTT2_zigbee_0x00158d00053d378e webCmd daytemp
attr MQTT2_zigbee_0x00158d00053d378e widgetOverride daytemp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
setstate MQTT2_zigbee_0x00158d00053d378e 20 °C\
0\
85\
85 %
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:35:14 associatedWith MQTT2_MQTT2
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-24 14:37:25 attrTemplateVersion 20201014
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 battery 85
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 daytemp 14.5
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 desired-temp 14.5
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 eurotronic_error_status 0
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 eurotronic_system_mode 1
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 linkquality 70
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 measured-temp 20
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 nighttemp 16
setstate MQTT2_zigbee_0x00158d00053d378e 2020-10-25 09:56:26 pi_heating_demand 0
pi_heating_demand bewegt sich zwischen 0 und 255
Hmm, also:
- erst mal schön, dass das jetzt doch irgendwie einen Schuh zu geben scheint :) .
- mit "daytemp" als "Haupt"-Setter bin ich nicht glücklich, v.a. weil sich das nicht so gut in die allgemeine FHEM-Logik einfügt (z.B. der WDT erkennt den dann nicht als "Klimagerät"). Da auch desired-temp aktuell gehalten wird, sehe ich auch keinen Vorteil.
- pi_heating_demand könnte sowas wie ein Valve-Wert sein, allerdings eben in Hexadezimal, also 0-255 statt 0-100%. Wei oft kommt da ein Wert rein? Wenn man "valve" haben wollte, könnte man ein userReading basteln; würde wohl Sinn machen?
Ansonsten fehlt mir irgendwie noch die Doku zu dem Ding, das ist mir noch zu nebulös, was da wie wann warum passiert. Z.B. müßte man eingentlich einen (Un-)Occupied-Modus einschalten können, um zwischen Tag- und Nachttemperatur zu wechseln usw..
Aber so wie sich https://www.zigbee2mqtt.io/devices/SPZB0001.html liest, stellt man - im wesentlichen - halt die Soll-Temperatur ein und "gut ist".
Hast du die dortige "Recommendation" mit dem debounce umgesetzt? Wie ist der Unterschied in dem, was der Thermostat sendet?
debounce habe ich bisher nicht angewandt
Im zugehörigen logfile werden nur Daten geschrieben, wenn die Wuschtemperatur (in Fhem oder am Gerät) geändert wird. Dann wird scheinbar die alten Einstellung ins Logfile geschrieben und dann die neuen Daten.
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e pi_heating_demand: 105
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e desired-temp: 17.5
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e linkquality: 63
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e eurotronic_error_status: 0
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e measured-temp: 20
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e nighttemp: 16
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e daytemp: 18
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e battery: 80
2020-10-26_23:19:30 MQTT2_zigbee_0x00158d00053d378e eurotronic_system_mode: 1
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e measured-temp: 20
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e linkquality: 63
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e eurotronic_error_status: 0
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e desired-temp: 18
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e pi_heating_demand: 105
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e eurotronic_system_mode: 1
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e daytemp: 18
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e battery: 80
2020-10-26_23:19:33 MQTT2_zigbee_0x00158d00053d378e nighttemp: 16
Hmm, es wird schon einen Grund geben, warum die Empfehlung bei blakadder steht mit debounce.
Ansonsten sieht mir das ok aus, wenn man mit desired-temp arbeitet. Was mir gedanklich noch fehlt, wäre ein setter für "day"- und "night"-Modus, aber da scheint es auch auf der zigbee2mqtt-Seite (noch?) keine Implementierung zu geben.
Von daher sind wir - bis auf ggf. ein farewell mit dem debounce-Hinweis - eigentlich vorläufig fertig, oder übersehe ich was?
Halle Beta-User,
ja ich denke man kann das template so nutzen. Ich wollte noch einen WeekdayTimer dazu einrichten, hatte aber Probleme die Temperatur bei "daytemp" anzupassen.
Mit Anpassung des "commandTemplate" hat das nun funktioniert
attr TagesTimer commandTemplate set $NAME daytemp $EVENT
Danke für deine Hilfe und deine Zeit
Danke für die Rückmeldung, aber bei der Gelegenheit nochmal der Hinweis: desired-temp als Setter zu nutzen, ist m.E. besser als daytemp, gerade wegen des WeekdayTimer...
Sonst klappt das ggf. nämlich auch nicht mit "switchInThePast".
Btw.: wirf einen Blick auf die Option, die Temperaturliste von weekprofile an WeekdayTimer übergeben zu lassen.
Moin,
ich habe es nun auch endlich geschafft ein Spirit mit FHEM zu steuern.
Was mir noch fehlt ist die Möglichkeit die Ventilstellung direkt zu steuern damit ich meine MAX Thermostate langsam ersetzen kann.
Laut DOKU von Eurotronic sollte dies unter der Attr_ID 0x4001 möglich sein.
Leider bin ich nicht in der Lage das attrTemplate selbst dahingehend zu bearbeiten weil mir das Verständnis dazu fehlt.
Mit freundlichen Grüßen
Hmm, das attrTemplate berücksichtigt m.E. erst mal alle Befehle/Einstellungen, die auf der Seite https://www.zigbee2mqtt.io/devices/SPZB0001.html (https://www.zigbee2mqtt.io/devices/SPZB0001.html) angegeben sind.
Ob man eine Art "raw-Kommando" direkt via zigbee2mqtt versenden kann: k.A....
Du solltest daher m.E. erst mal bei kkoenk nachfragen, ob er das direkte Ansteuern des valve implementieren kann/will, dann bekommen wir das auch über FHEM geregelt.
Bei der Gelegenheit: dieses ominöse Reading "pi_heating_demand" ist die Ventilöffnung, allerding in einer 0-255-Skala? Dann könnte man zumindest ein userReadings für die Konvertierung in einen "üblichen" valve-Wert in % ergänzen... (Vorschläge nehme ich gerne entgegen ;) ).