Hi,
ich habe eine Sonoff Steckdose über MQTT eingebunden. Die Steckdose wird mit ON/OFF geschaltet - Großgeschrieben.
Da alle meinen anderen Devices immer on/off - Kleingeschrieben verwenden, möchte ich das gern anpassen.
Ich habe folgende Attribute verwendet:
eventMap on:ON off:OFF
webCmd on:off
Beim Device hab ich folgendes definiert:
subscribeReading_state cmnd/EG.Wohnzimmer.Stehlampe/1/POWER/set
subscribeReading_state2 stat/EG.Wohnzimmer.Stehlampe/POWER
Grundsätzlich funktioniert das Schalten. Wenn ich innerhalb FHEM schalte, wird state immer mit einem kleinen on/off belegt. Schalte ich am Gerät selbst, wird nur state2 aktualisiert und mit einem großen ON/OFF belegt.
Was ist der einfachste/beste Weg das reading state mit einem Kleingeschriebenen on/off aus dem reading state2 zu aktualisieren? So spontan fällt mir da notify oder doif ein, gibt es aber noch einen schöneren Weg über Attribute? Vielleicht stateformat oder so?
VG
F.
stateformat
Kannst Du das noch weiter ausführen, mir ist es damit nicht gelungen. Wie ich jetzt lesen habe, funktioniert das auf nur für STATE, also das Listing und nicht für state - das reading oder sehe ich das falsch?
Sorry verlesen, dachte du meinst die Anzeige in der Übersicht. ReadingsChange?
Edit:
HALT, das ist es auch nicht. Muss weiter suchen :D
Edit2:
userReadings würde mir jetzt noch einfallen, wobei ich gerade nicht weiß ob das andere Readings überschreiben darf. Musste mal versuchen. Ist für mich zu spät heute zum denken. Sry. Bin jetzt still :D
Ich hab noch bissel rumprobiert.
Grundsätzlich funktioniert ja alles. Es ist nur ein Schönheitsfehler, wenn ich intern schalte, werden state, state2 und STATE gesetzt. Wenn ich am Gerät schalte, werden nur state2 und STATE aktualiesiert. state2, weil es das Reading ist und STATE, weil ich "stateFormat state2" verwende.
Wäre halt schön, wenn immer alle 3 den gleichen Status hätten.
Poste mal bitte ein List des Device
Hier das List:
Internals:
IODev myBroker
NAME EG.WZ.Stehlampe
NR 639
STATE OFF
TYPE MQTT_DEVICE
Helper:
DBLOG:
state:
logdb:
TIME 1517091319.90794
VALUE off
state2:
logdb:
TIME 1517091321.52294
VALUE OFF
transmission-state:
logdb:
TIME 1517091321.48756
VALUE incoming publish received
READINGS:
2018-01-27 23:15:19 state off
2018-01-27 23:15:21 state2 OFF
2018-01-27 23:15:21 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/EG.Wohnzimmer.Stehlampe/POWER
values:
ON
OFF
sets:
OFF
ON
subscribe:
cmnd/EG.Wohnzimmer.Stehlampe/1/POWER/set
stat/EG.Wohnzimmer.Stehlampe/POWER
subscribeExpr:
^cmnd\/EG.Wohnzimmer.Stehlampe\/1\/POWER\/set$
^stat\/EG.Wohnzimmer.Stehlampe\/POWER$
subscribeReadings:
cmnd/EG.Wohnzimmer.Stehlampe/1/POWER/set:
cmd
name state
stat/EG.Wohnzimmer.Stehlampe/POWER:
cmd
name state2
Attributes:
IODev myBroker
devStateIcon ON:FS20.on OFF:FS20.off
eventMap on:ON off:OFF
group 2: Geräte
publishSet ON OFF cmnd/EG.Wohnzimmer.Stehlampe/POWER
room EG.Wohnzimmer,MQTT
stateFormat state2
subscribeReading_state cmnd/EG.Wohnzimmer.Stehlampe/1/POWER/set
subscribeReading_state2 stat/EG.Wohnzimmer.Stehlampe/POWER
webCmd on:off
Da wird doch nur ein Gerät mit dem Device geschaltet, wieso hast du dann state und state 2? Was ist der Unterschied der beiden, werde ich gerade nicht schlau draus.
Ich hab mich da an die Anleitungen gehalten. Das eine wird soweit ich verstanden habe nur zum lesen des Status verwendet, das andere zum Schreiben.
Welche Anleitung? Schau mal ins Wiki bei Sonoff. Gleiches Prinzip ein Reading für alles. Musst natürlich die Topics entsprechend anpassen.
Mit dem einen Reading das reicht, da hast Du recht. Ich hatte Bedenken, dass SmartVisu, welches ich als Frontend einsetze nicht mit dem großen ON/OFF klar kommt. Funktioniert aber doch alles :)
Danke, für Deine Hilfe!