[MQTT2] Tasmota Pow (r2?) Template vorschlag

Begonnen von DasQ, 12 Mai 2019, 13:02:49

Vorheriges Thema - Nächstes Thema

DasQ

Hi,

siehe topic

anregungen? kritik? wünsche?


************ edit 0.1****************************

-devstate-icon klickbar

*************edit 0.2 ****************************

- ausgabe optik angepasst (standardisiert)
- punkt anklickbar -> link zum tasmota-webif

raw

defmod sonoff_Waeschetrockner MQTT2_DEVICE sonoffPow1
attr sonoff_Waeschetrockner IODev MQTT2_Broker
attr sonoff_Waeschetrockner autocreate 0
attr sonoff_Waeschetrockner devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on
attr sonoff_Waeschetrockner group Trockner
attr sonoff_Waeschetrockner model A_01c_tasmota_POW
attr sonoff_Waeschetrockner readingList tele/sonoffPOW1/LWT:.* LWT\
  tele/sonoffPOW1/STATE:.* { json2nameValue($EVENT) }\
  tele/sonoffPOW1/SENSOR:.* { json2nameValue($EVENT) }\
  tele/sonoffPOW1/INFO.:.* { json2nameValue($EVENT) }\
  stat/sonoffPOW1/RESULT:.* { json2nameValue($EVENT) }
attr sonoff_Waeschetrockner room Waschkueche
attr sonoff_Waeschetrockner setList POWER1:on,off,toggle cmnd/sonoffPOW1/POWER1 $EVTPART1
attr sonoff_Waeschetrockner setStateList on off toggle
attr sonoff_Waeschetrockner sortby 2
attr sonoff_Waeschetrockner stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
1:POWER1\
uptime: Uptime\
<br>\
aktuell: ENERGY_Power W\
Tag: ENERGY_Today kWh\
Gestern: ENERGY_Yesterday kWh\
Gesamt: ENERGY_Total kWh
attr sonoff_Waeschetrockner webCmd POWER1

setstate sonoff_Waeschetrockner <a href="http://192.168.1.190" target="_blank">\
Online\
</a>\
1:off\
uptime: 3T06:20:39\
<br>\
aktuell: 0 W\
Tag: 0.000 kWh\
Gestern: 0.000 kWh\
Gesamt: 134.120 kWh
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_ApparentPower 0
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Current 0.000
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Factor 0.00
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Period 0
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Power 0
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_ReactivePower 0
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Today 0.000
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Total 134.120
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_TotalStartTime 2019-01-28T17:54:21
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Voltage 0
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 ENERGY_Yesterday 0.000
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 FallbackTopic cmnd/sonoffPow1_fb/
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 GroupTopic sonoffs
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 Hostname SonOff-Pow1
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 IPAddress 192.168.1.190
setstate sonoff_Waeschetrockner 2019-05-15 18:01:58 LWT Online
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 LoadAvg 19
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 Module Sonoff Pow R2
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 POWER1 off
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 RestartReason Software/System restart
setstate sonoff_Waeschetrockner 2019-05-12 11:30:04 SaveData on
setstate sonoff_Waeschetrockner 2019-05-12 11:30:04 SetOption26 on
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Sleep 50
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 SleepMode Dynamic
setstate sonoff_Waeschetrockner 2019-05-12 11:30:02 StateText1 off
setstate sonoff_Waeschetrockner 2019-05-12 11:30:03 StateText2 on
setstate sonoff_Waeschetrockner 2019-05-12 11:30:03 StateText3 toggle
setstate sonoff_Waeschetrockner 2019-05-12 11:30:03 StateText4 hold
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Time 2019-05-15T17:50:25
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Uptime 3T06:20:39
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Vcc 3.193
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 Version 6.5.0(release-basic)
setstate sonoff_Waeschetrockner 2019-05-12 12:29:50 WebServerMode Admin
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_AP 1
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_BSSId 7C:FF:4D:EC:69:23
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_Channel 11
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_Downtime 0T00:00:45
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_LinkCount 7
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_RSSI 26
setstate sonoff_Waeschetrockner 2019-05-15 18:50:25 Wifi_SSId 1
setstate sonoff_Waeschetrockner 2019-05-12 12:31:21 state set_on


list
Internals:
   CID        sonoffPow1
   DEF        sonoffPow1
   DEVICETOPIC sonoff_Waeschetrockner
   FUUID      5c4f38e4-f33f-9f3d-89b6-78725c1862e62fe2
   IODev      MQTT2_Broker
   LASTInputDev MQTT2_Broker
   MQTT2_Broker_MSGCNT 223
   MQTT2_Broker_TIME 2019-05-15 18:50:25
   MSGCNT     223
   NAME       sonoff_Waeschetrockner
   NR         142
   STATE      <a href="http://192.168.1.190" target="_blank">
Online
</a>
1:off
uptime: 3T06:20:39
<br>
aktuell: 0 W
Tag: 0.000 kWh
Gestern: 0.000 kWh
Gesamt: 134.120 kWh
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-05-15 18:50:25   ENERGY_ApparentPower 0
     2019-05-15 18:50:25   ENERGY_Current  0.000
     2019-05-15 18:50:25   ENERGY_Factor   0.00
     2019-05-15 18:50:25   ENERGY_Period   0
     2019-05-15 18:50:25   ENERGY_Power    0
     2019-05-15 18:50:25   ENERGY_ReactivePower 0
     2019-05-15 18:50:25   ENERGY_Today    0.000
     2019-05-15 18:50:25   ENERGY_Total    134.120
     2019-05-15 18:50:25   ENERGY_TotalStartTime 2019-01-28T17:54:21
     2019-05-15 18:50:25   ENERGY_Voltage  0
     2019-05-15 18:50:25   ENERGY_Yesterday 0.000
     2019-05-12 12:29:50   FallbackTopic   cmnd/sonoffPow1_fb/
     2019-05-12 12:29:50   GroupTopic      sonoffs
     2019-05-12 12:29:50   Hostname        SonOff-Pow1
     2019-05-12 12:29:50   IPAddress       192.168.1.190
     2019-05-15 18:01:58   LWT             Online
     2019-05-15 18:50:25   LoadAvg         19
     2019-05-12 12:29:50   Module          Sonoff Pow R2
     2019-05-15 18:50:25   POWER1          off
     2019-05-12 12:29:50   RestartReason   Software/System restart
     2019-05-12 11:30:04   SaveData        on
     2019-05-12 11:30:04   SetOption26     on
     2019-05-15 18:50:25   Sleep           50
     2019-05-15 18:50:25   SleepMode       Dynamic
     2019-05-12 11:30:02   StateText1      off
     2019-05-12 11:30:03   StateText2      on
     2019-05-12 11:30:03   StateText3      toggle
     2019-05-12 11:30:03   StateText4      hold
     2019-05-15 18:50:25   Time            2019-05-15T17:50:25
     2019-05-15 18:50:25   Uptime          3T06:20:39
     2019-05-15 18:50:25   Vcc             3.193
     2019-05-12 12:29:50   Version         6.5.0(release-basic)
     2019-05-12 12:29:50   WebServerMode   Admin
     2019-05-15 18:50:25   Wifi_AP         1
     2019-05-15 18:50:25   Wifi_BSSId      7C:FF:4D:EC:69:23
     2019-05-15 18:50:25   Wifi_Channel    11
     2019-05-15 18:50:25   Wifi_Downtime   0T00:00:45
     2019-05-15 18:50:25   Wifi_LinkCount  7
     2019-05-15 18:50:25   Wifi_RSSI       26
     2019-05-15 18:50:25   Wifi_SSId       1
     2019-05-12 12:31:21   state           set_on
Attributes:
   IODev      MQTT2_Broker
   autocreate 0
   devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on
   group      Trockner
   model      A_01c_tasmota_POW
   readingList tele/sonoffPOW1/LWT:.* LWT
  tele/sonoffPOW1/STATE:.* { json2nameValue($EVENT) }
  tele/sonoffPOW1/SENSOR:.* { json2nameValue($EVENT) }
  tele/sonoffPOW1/INFO.:.* { json2nameValue($EVENT) }
  stat/sonoffPOW1/RESULT:.* { json2nameValue($EVENT) }
   room       Waschkueche
   setList    POWER1:on,off,toggle cmnd/sonoffPOW1/POWER1 $EVTPART1
   setStateList on off toggle
   sortby     2
   stateFormat <a href="http://IPAddress" target="_blank">
LWT
</a>
1:POWER1
uptime: Uptime
<br>
aktuell: ENERGY_Power W
Tag: ENERGY_Today kWh
Gestern: ENERGY_Yesterday kWh
Gesamt: ENERGY_Total kWh
   webCmd     POWER1


plot

# Created by FHEM/98_SVG.pm, 2019-01-31 21:44:28
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel "Ampere"
set y2label "Watt"

#FileLog_sonoff_Waeschetrockner 4:sonoff_Waeschetrockner.ENERGY_Current\x3a::
#FileLog_sonoff_Waeschetrockner 4:sonoff_Waeschetrockner.ENERGY_Power\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'Watt' ls l0dot lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Ampere' ls l4fill lw 1 with lines
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Beta-User

#1
Moin,

hab' mal ein wenig code aus dem bisherigen POW, dem shelly1pm und deinem Vorschlag zusammengebastelt, weiß aber nicht, ob das so "reibungslos" funktioniert, muß also ggf. noch fehlerbereinigt werden:

name:A_01c1_tasmota_POW
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
desc:Applies to Sonoff POW devices<br>NOTE: Power topic will be set to POWER1; the format the device is sending data will also be changed to lowercase!
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }set DEVICE attrTemplate A_01a_tasmota_basic_state_power1attr DEVICE setList \  off:noArg    CMNDTOPIC/POWER1 0\
  on:noArg     CMNDTOPIC/POWER1 1\
  toggle:noArg CMNDTOPIC/POWER1 2
attr DEVICE devStateIcon {my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<a href=\"http://".ReadingsVal($name,"IPAddress","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a> uptime: ".ReadingsVal($name,"Uptime",undef).sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
attr DEVICE stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE setStateList on off toggle
attr DEVICE webCmd :
attr DEVICE model A_01c1_tasmota_POW


Das relay in state schaltbar zu machen, hat den Vorteil, dass man on-for-timer etc. verwenden kann, macht es aber erforderlich, das devStateIcon mit Perl zusammenzubasteln. Außerdem sollte das online/offline-Symbol direkt zum WEB-IF führen, ohne dass extra die IP angezeigt wird; ich finde das eine elegante Lösung, die auch bei einigen anderen Devices so umgesetzt ist (die MiLight-Bridge, z.B.), ist aber natürlich Geschmackssache.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Auch wenn das mit dem svn upload grade nicht klappen will, mal noch eine Rückmeldung dazu:
Zitat von: DasQ am 15 Mai 2019, 18:57:51
hab ich mir zu herzen genommen und noch den punkt klickbar gemacht schaus dir an. von mr aus ists ok
1. ist der Thread, aus dem das stammt nicht zum diskutieren gedacht (siehe dort 1. Beitrag).
2. War dort die Frage gestellt, ob das das vorhandene Template ersetzen soll (das wollte ich jetzt so machen, leider ist das svn grade nicht erreichbar...)
3. Ist das oben zitierte der Verweis auf dein list, aber keine direkte Antwort auf die Frage, ob du das von mir daraus erstellte template jetzt als funktionsfähig getestet hast. (In dem ersten beitrag im anderen Thread (oder dem einen link dort) steht auch, wie man eigene Templates erstellen und _testen_ kann).

Mir würde es die Arbeit wirklich sehr erleichtern, wenn wir da zukünftig nicht so aneinander vorbei reden würden :D .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Zitatdas mit dem svn upload grade nicht klappen will
Habs repariert, vmtl. einer der automatischen upgrades hat iptables mal wieder zerschossen.

Beta-User

Zitat von: rudolfkoenig am 16 Mai 2019, 08:59:36
Habs repariert, vmtl. einer der automatischen upgrades hat iptables mal wieder zerschossen.
Thx, das ist jetzt im svn.

Kurze Frage, da jetzt wegen den on/off-Themas wieder mehr Perl-devStateIcons via template ausgeliefert werden:
Würde es Sinn machen, die (z.B.) in einer 99_attrTemplateUtils.pm zu sammeln? Ist vermutlich für unsere Zielgruppe "zu undurchsichtig", oder? Werde wohl eher einen Abschnitt in die Praxisbeispiele reinmachen und erläutern, wie man eigenen Code zentral vorhalten kann, wenn jemand andere Layouts will.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DasQ

Oben steht ,,Vorschlag"

Was man jetzt draus macht, is mir im Grunde egal.
Und das mit dem Thema, Arbeit abnehmen hab ich auch schon mehrfach angesprochen, aber da kam nie eine Reaktion. ich seh meine Stärken aber nicht im Diffs erstellen und testen. Ich hab nur gute Ideen und mehr so der Erfinder.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

rudolfkoenig

#6
ZitatWürde es Sinn machen, die (z.B.) in einer 99_attrTemplateUtils.pm zu sammeln?
Mit update verteilte 99-er .pm Dateien moechte ich vermeiden.
Stattdessen wuerde ich die Datei AttrTemplateUtils.pm nennen, und im template
defmod attrTemplateInit notify global:INITIALIZED { require "AttrTemplateUtils.pm" }
einfuegen.

Beta-User

Zitat von: DasQ am 16 Mai 2019, 10:00:25
Oben steht ,,Vorschlag"

Was man jetzt draus macht, is mir im Grunde egal.
Und das mit dem Thema, Arbeit abnehmen hab ich auch schon mehrfach angesprochen, aber da kam nie eine Reaktion. ich seh meine Stärken aber nicht im Diffs erstellen und testen. Ich hab nur gute Ideen und mehr so der Erfinder.
Es ist im Prinzip ok, wenn du Vorschläge machst. Zum Testen ist es eben in der Regel sinnvoll, wenn reale Hardware dahinter ist, daher hatte ich die Bitte geäußert, das vorab zu testen. Wenn du das nicht kannst/willst, ist das auch ok. Wenn an der Stelle "attrTemplate" mal was "kaputt" ist, funktioniert FHEM in der Regel ja trotzdem, nur das betroffene Gerät ggf. nicht.

Ein diff ist natürlich super, hier wäre auch der (ggf. verbesserte) template-Code völlig ausreichend gewesen; hatte nicht erwartet, dass das eine größere Schwierigkeit darstellt, der template-Name war ja (mind. zum Testen) unterschiedlich gewählt.

Und du darfst mir gerne Arbeit abnehmen, sorry, wenn ich da entsprechende Angebote übersehen haben sollte. Es sollte nur am Ende weniger Arbeit sein, und kein (über mehrere Threads verteiltes) Ratespiel für mich :) .


@Rudi:
Danke für den stups, klingt - wie immer - für mich sinnvoll. Die Datei sollte dann nach fhem/FHEM, oder? Eigentlich fände ich auf den ersten Blick das AttrTemplate-Verzeichnis auch keine schlechte Wahl, bin aber nicht sicher, ob fhem (ohne GPUtils) automatisch da nachsieht und ob das ggf. für die User nachvollziehbar wäre?
Dann: sollen die Funktionen ggf. in $main:: oder eher in ein eigenes package? main hätte den Vorzug, dass user das dann mit eigenen "99-ern" überschreiben könnten, ohne die Geräte im einzelnen anzufassen, das würde andererseits aber wieder Logeinträge generieren.

(Muß mal noch ein wenig darüber nachdenken, war erst mal nur ein spontaner Gedanke).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

Die Datei muesste in fhem/FHEM landen, sonst wird es nicht per update verteilt.
Ich wuerde kein Package bauen: es verkompliziert mAn die Verwendung, und ist unleserlicher.
Man muss nur die Funktionsnamen etwas vorsichtiger waehlen, evtl. mit einem Praefix.

Beta-User

Hmm, vermutlich würde es dann Sinn machen, einen oder mehrere Parameter für - mehr oder weniger - _einen_ AttrTemplate_devStateIcon-Aufruf vorzusehen und diesen Code dann eben entsprechend komplexer zu machen.

Auch irgendwie nicht ganz so einfach (ich bekomme das schon hin, das ist nicht das Problem). Es wird dann wieder nur so kompliziert, dass Einsteiger das dann nicht mehr verstehen. Im Ergebnis ist es vermutlich besser, in den Praxisbeispielen (?, oder in 99 MyUtils erstellten) zu erklären, wie sie den devStateIcon-Code in myUtils auslagern können. Ist vielleicht sogar ein ganz passables "Lerner"-Beispiel?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DasQ

Zitat von: Beta-User am 16 Mai 2019, 10:38:51
Es ist im Prinzip ok, wenn du Vorschläge machst. Zum Testen ist es eben in der Regel sinnvoll, wenn reale Hardware dahinter ist, daher hatte ich die Bitte geäußert, das vorab zu testen. Wenn du das nicht kannst/willst, ist das auch ok.

das typische wir reden aneinader vorbei. also wenn ich das hier poste, ist das bei mir im produktiveinsatz und somit getestet. cool wär aber wenn es ggf noch ein zweiter testet. und ich bin davon ausgegangen das meintest du auch. wer weis vielleicht hab ich ja bei mir was grundlegend anders gemacht. (aber bei dem milight template hat ja auch nie einer was gesagt, obwohls noch sehr wacklig war, zu dem zeitpunkt damals.)
wie schonmal gesagt, ich kann z.b. beim schreiben ins wiki helfen oder schön bebilderte tutorials basteln oder manuals. ideen liefern oder anders abstrackt denken. geht nicht, gibts nicht und von hinten durch den kopf ins aug ist auch ein weg.
(mir hat man mal gesagt, ein fragmentierten flash von ner dbox2 lässt sich nicht defragmentieren ... bis ich ihm das gegenteil bewiesen hab ...)

ich schau mir die sache mit dem diff nochmals genauer an, obwohl da des verhasst regex drin ist.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Beta-User

Sorry, wenn ich meine Intention mit dem geposteten template nicht klar genug ausgesprochen hatte und wir vermutlicht auch deswegen aneinander vorbei geredet haben.

Sowas heißt eigentlich immer: Bitte _als template_ testen.

Dass du ein funktionierendes Device dafür hattest, war soweit klar (und auch die meiste Arbeit, Danke im Namen aller kommenden Nutzer!). Nur leider bin ich nicht perfekt, so dass es immer mal wieder vorkommt, dass ich beim "vertemplaten" einen Zeilenumbruch vergesse, eine Klammer, "/" usw. zu viel drin ist oder einfach sonst was nicht erwartungsgemöß funktioniert.

Ansonsten mußt du nicht regex lernen oä. Das ist zwar hilfreich, aber an dem Punkt nicht erforderlich. "Einfach" nur testen reicht ::) ; "meistens" ist es so, dass es dann bei allen funktioniert, jedenfalls, wenn ich nicht hartgecodede topic-Teile übersehe, die dann auf andere Geräte nicht passen. Das zu korrigieren ist dann aber auch wirklich eine Kleinigkeit ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

kabanett

Hallo,
ich habe hier ein Problem mit der Verwendung des Template. Ich hoffe das ich hier richtig bin.
Fhem ist auf dem Stand von gestern. Der Sonoff ist mit aktueller Tasmotasoftware in betrieb.

Der POW wird durch autogreate angelegt:
Internals:
   CFGFN     
   CID        DVES_8AD3FC
   DEF        DVES_8AD3FC
   DEVICETOPIC MQTT2_DVES_8AD3FC
   FUUID      5ce028ad-f33f-0fc8-b7c1-2b80106666164e16
   IODev      MQTT2_Server
   NAME       MQTT2_DVES_8AD3FC
   NR         9176
   STATE      ???
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-05-18 17:45:49   ENERGY_ApparentPower 62
     2019-05-18 17:45:49   ENERGY_Current  0.273
     2019-05-18 17:45:49   ENERGY_Factor   0.49
     2019-05-18 17:45:49   ENERGY_Period   2
     2019-05-18 17:45:49   ENERGY_Power    30
     2019-05-18 17:45:49   ENERGY_ReactivePower 54
     2019-05-18 17:45:49   ENERGY_Today    0.026
     2019-05-18 17:45:49   ENERGY_Total    0.026
     2019-05-18 17:45:49   ENERGY_TotalStartTime 2019-05-16T16:04:27
     2019-05-18 17:45:49   ENERGY_Voltage  227
     2019-05-18 17:45:49   ENERGY_Yesterday 0.000
     2019-05-18 17:45:49   LoadAvg         19
     2019-05-18 17:45:49   POWER           ON
     2019-05-18 17:45:49   Sleep           50
     2019-05-18 17:45:49   SleepMode       Dynamic
     2019-05-18 17:45:49   Time            2019-05-18T16:45:48
     2019-05-18 17:45:49   Uptime          0T00:45:19
     2019-05-18 17:45:49   Vcc             3.126
     2019-05-18 17:45:49   Wifi_AP         1
     2019-05-18 17:45:49   Wifi_BSSId      F0:B0:14:E7:D9:A6
     2019-05-18 17:45:49   Wifi_Channel    4
     2019-05-18 17:45:49   Wifi_Downtime   0T00:00:04
     2019-05-18 17:45:49   Wifi_LinkCount  1
     2019-05-18 17:45:49   Wifi_RSSI       54
     2019-05-18 17:45:49   Wifi_SSId       Einbruch lohnt nicht!!!
Attributes:
   IODev      MQTT2_Server
   readingList DVES_8AD3FC:tele/Rasenroboter/STATE:.* { json2nameValue($EVENT) }
DVES_8AD3FC:tele/Rasenroboter/SENSOR:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE


Nach set attrTemplate erhalte ich die im Bild angehängte Fehlermeldung.
Danach sehen die Internals auch etwas anders aus.
Internals:
   .triggerUsed 0
   CFGFN     
   CID        DVES_8AD3FC
   DEF        DVES_8AD3FC
   DEVICETOPIC MQTT2_DVES_8AD3FC
   FUUID      5ce028ad-f33f-0fc8-b7c1-2b80106666164e16
   IODev      MQTT2_Server
   LASTInputDev MQTT2_Server
   MQTT2_Server_MSGCNT 2
   MQTT2_Server_TIME 2019-05-18 17:50:49
   MSGCNT     2
   NAME       MQTT2_DVES_8AD3FC
   NR         9176
   STATE      ???
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-05-18 17:50:49   ENERGY_ApparentPower 58
     2019-05-18 17:50:49   ENERGY_Current  0.256
     2019-05-18 17:50:49   ENERGY_Factor   0.52
     2019-05-18 17:50:49   ENERGY_Period   3
     2019-05-18 17:50:49   ENERGY_Power    30
     2019-05-18 17:50:49   ENERGY_ReactivePower 50
     2019-05-18 17:50:49   ENERGY_Today    0.029
     2019-05-18 17:50:49   ENERGY_Total    0.029
     2019-05-18 17:50:49   ENERGY_TotalStartTime 2019-05-16T16:04:27
     2019-05-18 17:50:49   ENERGY_Voltage  227
     2019-05-18 17:50:49   ENERGY_Yesterday 0.000
     2019-05-18 17:50:48   LoadAvg         19
     2019-05-18 17:50:48   POWER           ON
     2019-05-18 17:50:48   Sleep           50
     2019-05-18 17:50:48   SleepMode       Dynamic
     2019-05-18 17:50:49   Time            2019-05-18T16:50:48
     2019-05-18 17:50:48   Uptime          0T00:50:19
     2019-05-18 17:50:48   Vcc             3.142
     2019-05-18 17:50:48   Wifi_AP         1
     2019-05-18 17:50:48   Wifi_BSSId      F0:B0:14:E7:D9:A6
     2019-05-18 17:50:48   Wifi_Channel    4
     2019-05-18 17:50:48   Wifi_Downtime   0T00:00:04
     2019-05-18 17:50:48   Wifi_LinkCount  1
     2019-05-18 17:50:48   Wifi_RSSI       50
     2019-05-18 17:50:48   Wifi_SSId       Einbruch lohnt nicht!!!
Attributes:
   IODev      MQTT2_Server
   readingList DVES_8AD3FC:tele/Rasenroboter/STATE:.* { json2nameValue($EVENT) }
DVES_8AD3FC:tele/Rasenroboter/SENSOR:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE


Ich habe es schon mehrfach versucht. Also Device gelöscht, durch autogreate anlegen lassen usw..
Bekomme aber immer einen Error.

Wo liegt mein Fehler?
Ich hoffe ihr könnt mir helfen

Gruß


Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

Beta-User

Jup, du bist hier (auch) richtig...

Sorry, da waren durch das Umkopieren in diese sch... Forum-Software zwei Zeilenumbrüche verloren gegangen.

Im svn ist jetzt eine hoffentlich funktionierende Fassung, allerdings will die einen LWT-Eintrag in der readingList haben. Der scheint bei dir zu fehlen ??? .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

kabanett

Hallo

Es sind später noch mehrere Readings dazu gekommen. Unter anderem LWT. Warum das so war/ist? Keine Ahnung.

Mit der Template aus dem SVN lief es ohne zu meckern. Danke!

Ich denke so richtig hat es doch nicht funktioniert. Ich habe weder dieses rot/grün Pünktchen noch eine Möglichkeit zu schalten.
Beim Shelly Rollo ist es wohl auch nicht richtig. Ich wurde in einem anderen Thread darauf hingewiesen. Vieleicht hab ich hier ein Problem?
Ich habe die beiden Geräte momentan zum testen im Einsatz um für einen weiteren Ausbau Erfahrungen/Erkenntnisse zu sammeln.

Hier mal ein List und ein Screenshot
Internals:
   .triggerUsed 1
   CID        DVES_8AD3FC
   DEF        DVES_8AD3FC
   DEVICETOPIC MQTT2_DVES_8AD3FC
   FUUID      5ce028ad-f33f-0fc8-b7c1-2b80106666164e16
   IODev      MQTT2_Server
   LASTInputDev MQTT2_Server
   MQTT2_Server_MSGCNT 142
   MQTT2_Server_TIME 2019-05-18 20:49:15
   MSGCNT     142
   NAME       MQTT2_DVES_8AD3FC
   NR         205
   STATE      aktuell: 0.0 W Tag: 0.04 kWh Gestern: 0.000 kWh Gesamt: 0.0420 kWh
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2019-05-18 20:49:15   ENERGY_ApparentPower 0
     2019-05-18 20:49:15   ENERGY_Current  0.000
     2019-05-18 20:49:15   ENERGY_Factor   0.00
     2019-05-18 20:44:41   ENERGY_Period   0
     2019-05-18 20:49:15   ENERGY_Power    0
     2019-05-18 20:49:15   ENERGY_ReactivePower 0
     2019-05-18 20:49:15   ENERGY_Today    0.042
     2019-05-18 20:49:15   ENERGY_Total    0.042
     2019-05-18 20:49:15   ENERGY_TotalStartTime 2019-05-16T16:04:27
     2019-05-18 20:49:15   ENERGY_Voltage  231
     2019-05-18 20:49:15   ENERGY_Yesterday 0.000
     2019-05-18 20:44:41   LoadAvg         19
     2019-05-18 20:44:41   POWER1          on
     2019-05-18 20:21:05   SaveData        on
     2019-05-18 20:21:05   SetOption26     on
     2019-05-18 20:44:41   Sleep           50
     2019-05-18 20:44:41   SleepMode       Dynamic
     2019-05-18 20:21:04   StateText1      off
     2019-05-18 20:21:04   StateText2      on
     2019-05-18 20:21:04   StateText3      toggle
     2019-05-18 20:21:05   StateText4      hold
     2019-05-18 20:49:15   Time            2019-05-18T19:49:13
     2019-05-18 20:44:41   Uptime          0T00:50:42
     2019-05-18 20:44:41   Vcc             3.141
     2019-05-18 20:44:41   Wifi_AP         1
     2019-05-18 20:44:41   Wifi_BSSId      F0:B0:14:E7:D9:A6
     2019-05-18 20:44:41   Wifi_Channel    4
     2019-05-18 20:44:41   Wifi_Downtime   0T00:00:07
     2019-05-18 20:44:41   Wifi_LinkCount  1
     2019-05-18 20:44:41   Wifi_RSSI       54
     2019-05-18 20:44:41   Wifi_SSId       Einbruch lohnt nicht!!!
     2019-05-18 20:31:15   state           set_on
Attributes:
   IODev      MQTT2_Server
   autocreate 0
   devStateIcon {my $onl = ReadingsVal($name,"LWT","false") eq "Online"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;"<a href=\"http://".ReadingsVal($name,"IPAddress","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a> uptime: ".ReadingsVal($name,"Uptime",undef).sprintf(" aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
   model      A_01c_tasmota_POW
   readingList tele/Rasenroboter/LWT:.* LWT
  tele/Rasenroboter/STATE:.* { json2nameValue($EVENT) }
  tele/Rasenroboter/SENSOR:.* { json2nameValue($EVENT) }
  tele/Rasenroboter/INFO.:.* { json2nameValue($EVENT) }
  stat/Rasenroboter/RESULT:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   setList    off:noArg    cmnd/Rasenroboter/POWER1 0
  on:noArg     cmnd/Rasenroboter/POWER1 1
  toggle:noArg cmnd/Rasenroboter/POWER1 2
   setStateList on off toggle
   stateFormat {sprintf("aktuell: %.1f W Tag: %.2f kWh Gestern: %.3f kWh Gesamt: %.4f kWh", ReadingsVal($name,"ENERGY_Power",undef), ReadingsVal($name,"ENERGY_Today",undef), ReadingsVal($name,"ENERGY_Yesterday",undef), ReadingsVal($name,"ENERGY_Total",undef))}
   webCmd     :
   
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren