Aus dummydevice reading zu einer Shelly Funktion herausnehmen

Begonnen von deathworm, 02 Oktober 2020, 23:10:57

Vorheriges Thema - Nächstes Thema

deathworm

AHoj,

folgendes... ich habe Shelly 2.5er im Einsatz für meine Rollos. Diese sind alle mit dem Template hinzugefügt. Ich habe dem ganzen einen Zusätzlichen Wert mit "Schlitze" hinzugefügt, um die Rollos eben nur soweit zu schliessen, dass diese eben komplett geschlitzt sind. Nun muss ich das aber immer mal wieder etwas anpassen, wenn mal wieder eine Lernfahrt unternommen wurde. Oft nicht viel, aber man muss immer alles einzeln anpacken und das auch noch über direkt editieren. Das würde ich gerne ändern.

Ich wollte nun zuerst per 99_myutils variablen definieren. Aber nach etwas testen und vorallem nachdenken, denke ich, dass das doch eher nichts ist. Mein Gedankengang ist nun eher ein Dummydevice mit allen Positionen jeweils als states...

Ausgefüht mit dem Befehl: setreading variable1 wohnzimmerlinks 18
Dann habe ich im Dummydevice variable1 auch den wohnzimmerlinks 18 - soweit so gut denke ich. Alle Werte da rein und fertig.

Nun habe ich jedoch das Problem, wie füge ich diesen Wert in das Shelly Template korrekt ein?


define MQTT2_shellyswitch25_E616A8 MQTT2_DEVICE shellyswitch25_E616A8
setuuid MQTT2_shellyswitch25_E616A8 5d645c54-f33f-c141-b6f7-826415eea55a1ba9
attr MQTT2_shellyswitch25_E616A8 IODev myBroker
attr MQTT2_shellyswitch25_E616A8 alias Wohnzimmer links
attr MQTT2_shellyswitch25_E616A8 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50 schlitze:shutter_7
attr MQTT2_shellyswitch25_E616A8 comment Shelly 2.5 in Roller-Mode. 100=opened / 0=closed
attr MQTT2_shellyswitch25_E616A8 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 9\d:fts_shutter_10 8\d:fts_shutter_20 7\d:fts_shutter_30 6\d:fts_shutter_40 5\d:fts_shutter_50 4\d:fts_shutter_60 3\d:fts_shutter_70 2\d:fts_shutter_80 1\d:fts_shutter_90 0\d:fts_shutter_100 set_.*:fts_shutter_updown
attr MQTT2_shellyswitch25_E616A8 model A_11b1a_shelly25_roller_invert_0
attr MQTT2_shellyswitch25_E616A8 readingList shellies/shellyswitch25-E616A8/roller/0/pos:.* pct\
  shellies/shellyswitch25-E616A8/status/0/rollers:.* power\
  shellies/shellyswitch25-E616A8/online:.* online\
  shellies/shellyswitch25-E616A8/announce:.* { json2nameValue($EVENT) }\
  shellies/announce:.* { $EVENT =~ m,..id...shellyswitch25-E616A8...mac.*, ? json2nameValue($EVENT) : undef }\
  shellies/shellyswitch25-E616A8/roller/0:.* current\
  shellies/shellyswitch25-E616A8/roller/0:open {{'state' => 'opening'}}\
  shellies/shellyswitch25-E616A8/roller/0:close {{'state' => 'closing'}}\
  shellies/shellyswitch25-E616A8/roller/0/pos:.* state\
  shellies/shellyswitch25-E616A8/input/1:.* input1\
  shellies/shellyswitch25-E616A8/input/0:.* input0\
  shellies/shellyswitch25-E616A8/relay/power:.* power\
  shellies/shellyswitch25-E616A8/relay/energy:.* energy\
  shellies/shellyswitch25-E616A8/temperature:.* temperature\
  shellies/shellyswitch25-E616A8/overtemperature:.* overtemperature\
shellyswitch25_E616A8:shellies/shellyswitch25-E616A8/roller/0/power:.* roller_0_power\
shellyswitch25_E616A8:shellies/shellyswitch25-E616A8/roller/0/energy:.* roller_0_energy\
shellyswitch25_E616A8:shellies/shellyswitch25-E616A8/online:.* online\
shellyswitch25_E616A8:shellies/shellyswitch25-E616A8/temperature_f:.* temperature_f
attr MQTT2_shellyswitch25_E616A8 room Rollos
attr MQTT2_shellyswitch25_E616A8 setList open:noArg shellies/shellyswitch25-E616A8/roller/0/command open\
  close:noArg shellies/shellyswitch25-E616A8/roller/0/command close\
  half:noArg shellies/shellyswitch25-E616A8/roller/0/command/pos 50\
  schlitze:noArg shellies/shellyswitch25-E616A8/roller/0/command/pos 18\
  stop:noArg shellies/shellyswitch25-E616A8/roller/0/command stop\
  pct:slider,0,1,100 shellies/shellyswitch25-E616A8/roller/0/command/pos $EVTPART1\
  x_recalibration:noArg shellies/shellyswitch25-E616A8/roller/0/command rc\
  x_update:noArg shellies/shellyswitch25-E616A8/command update_fw\
  x_mqttcom shellies/shellyswitch25-E616A8/command $EVTPART1
attr MQTT2_shellyswitch25_E616A8 stateFormat <a href="http://ip" target="_blank">\
online\
</a>\
state
attr MQTT2_shellyswitch25_E616A8 webCmd :open:close:half:schlitze:stop:pct
define FileLog_MQTT2_shellyswitch25_E616A8 FileLog ./log/MQTT2_shellyswitch25_E616A8-%Y.log MQTT2_shellyswitch25_E616A8
setuuid FileLog_MQTT2_shellyswitch25_E616A8 5d645c54-f33f-c141-ef61-362dccf0b4ccd32c
attr FileLog_MQTT2_shellyswitch25_E616A8 logtype text
attr FileLog_MQTT2_shellyswitch25_E616A8 room Logs



Ich habe nun etliche Sachen mit der Zeile "  schlitze:noArg shellies/shellyswitch25-E616A8/roller/0/command/pos 18\" schon probiert...

Also zum Beispiel /pos ReadingsVal("variable1", "wohnzimmerlinks", "") \ 
Ich habe noch weitere andere Versuche unternommen, aber die habe ich mittlerweile alle wieder überschrieben. Leider alle ohne Erfolg. Was mach ich da falsch? Ist ja nix mit Perl, sondern bleibt ja innerhalb vom FHEM


Grüße,

Sascha

Otto123

#1
Hallo Sascha,

Du musst das in Perl kapseln:
schlitze:noArg { my $value = ReadingsVal("variable1", "wohnzimmerlinks", "") ; qq(shellies/shellyswitch25-E616A8/roller/0/command/pos $value ) }\

Siehe auch sonos2mqtt Templates ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

deathworm

Nabend Otto!

Sieht komisch lang aus, funktioniert aber Super. Vielen Dank für deine Hilfe!

Nur eine kleine Korrektur: Es müssen zwei Semikolons sein - Sonst meckert FHEM ;)

Jetzt bau ich mal alle meine Rollläden um.

Schönen Abend!

Otto123

#3
Naja: Du hast vom Template (aber die Raw Def gezeigt) geredet, im AttrTemplate muss es ein Semikolon sein.
In der DEF muss es auch ein Semikolon sein.
In der Raw Def oder Kommandozeile müssen es natürlich zwei sein.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Prof. Dr. Peter Henning