Template für Tasmota mit Infrarot lesekopf

Begonnen von The-Holgi, 03 April 2024, 17:20:29

Vorheriges Thema - Nächstes Thema

The-Holgi

Hallo,
hat vielleicht jemand seinen Stromzaehler mittels Tasmota und einem IR Lesekopf eingebunden?
Soweit bekomme ich die readings angezeigt, also eigentlich funktioniert alles aber es sieht nicht so schön aus. Hatte einfach das Tasmota basic template genommen.
Hier mal ein list vom mqtt2 device:
Internals:
   CID        DVES_7C6865
   DEF        DVES_7C6865
   FUUID      660d6e91-f33f-6571-83ac-0bf9ec1172c9d893
   IODev      myBroker2
   LASTInputDev myBroker2
   MSGCNT     3486
   NAME       MQTT2_DVES_7C6865
   NR         533
   STATE      215.02 W
   TYPE       MQTT2_DEVICE
   eventCount 3480
   myBroker2_CONN myBroker2_192.168.178.79_57052
   myBroker2_MSGCNT 3486
   myBroker2_TIME 2024-04-03 17:14:31
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Channel_5  0
     Color      0
     Dimmer     0
     HSBColor   0
     POWER1     0
     POWER2     0
     POWER3     0
     POWER4     0
   OLDREADINGS:
   READINGS:
     2024-04-03 17:11:50   Heap            15
     2024-04-03 16:59:12   IODev           myBroker2
     2024-04-03 17:11:50   LoadAvg         21
     2024-04-03 17:11:50   MqttCount       2
     2024-04-03 17:14:31   SML_16_7_0      215.02
     2024-04-03 17:11:50   SML_1_8_0       13669.07161510
     2024-04-03 17:06:50   SML_1_8_1       1366802948.874
     2024-04-03 17:06:50   SML_1_8_2       101700.000
     2024-04-03 17:11:50   SML_2_8_0       147.59036823
     2024-04-03 17:11:50   SML_32_7_0      237.7
     2024-04-03 17:14:31   SML_36_7_0      -26.49
     2024-04-03 17:11:50   SML_52_7_0      238.8
     2024-04-03 17:14:31   SML_56_7_0      48.28
     2024-04-03 17:11:50   SML_72_7_0      237.9
     2024-04-03 17:14:31   SML_76_7_0      193.23
     2024-04-03 17:11:20   SML_CMD         restart
     2024-04-03 17:01:18   SaveData        on
     2024-04-03 17:01:18   SetOption26     on
     2024-04-03 17:11:50   Sleep           50
     2024-04-03 17:11:50   SleepMode       Dynamic
     2024-04-03 17:01:17   StateText1      off
     2024-04-03 17:01:17   StateText2      on
     2024-04-03 17:01:17   StateText3      toggle
     2024-04-03 17:01:17   StateText4      hold
     2024-04-03 17:14:31   Time            2024-04-03T17:14:31
     2024-04-03 17:11:50   Uptime          0T00:20:14
     2024-04-03 17:11:50   UptimeSec       1214
     2024-04-03 17:11:50   Wifi_AP         1
     2024-04-03 17:11:50   Wifi_BSSId      2C:91:AB:51:80:AC
     2024-04-03 17:11:50   Wifi_Channel    1
     2024-04-03 17:11:50   Wifi_Downtime   0T00:00:05
     2024-04-03 17:11:50   Wifi_LinkCount  1
     2024-04-03 17:11:50   Wifi_Mode       11n
     2024-04-03 17:11:50   Wifi_RSSI       70
     2024-04-03 17:11:50   Wifi_SSId       TheGate
     2024-04-03 17:11:50   Wifi_Signal     -65
     2024-04-03 17:01:17   attrTemplateVersion 20210523
   hmccu:
Attributes:
   DbLogExclude 1
   alias      Stromzaehler
   autocreate 0
   comment    NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10; 'cmnd/cmnd/tasmota_7C6865/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
   event-on-change-reading .*
   genericDeviceType ignore
   icon       hue_filled_outlet
   jsonMap    POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 Channel_5:0 HSBColor:0 Color:0
   model      tasmota_basic_state_power1
   readingList tele/tasmota_7C6865/LWT:.* LWT
  tele/tasmota_7C6865/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_7C6865/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_7C6865/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_7C6865/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/tasmota_7C6865/POWER1:.* state
  stat/tasmota_7C6865/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
   room       MQTT2_DEVICE,Photovoltaik
   setList    off:noArg    cmnd/tasmota_7C6865/POWER1 0
  on:noArg     cmnd/tasmota_7C6865/POWER1 1
  toggle:noArg cmnd/tasmota_7C6865/POWER1 2
  setOtaUrl:textField cmnd/tasmota_7C6865/OtaUrl $EVTPART1
  upgrade:noArg   cmnd/tasmota_7C6865/upgrade 1
   stateFormat SML_16_7_0 W

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

rudolfkoenig

Zitathat vielleicht jemand seinen Stromzaehler mittels Tasmota und einem IR Lesekopf eingebunden?
Ja, ich. Ohne Template.
Schaut noch haesslicher aus, aber ich schaue die MQTT2_DEVICE Instanz nie an, sondern nur die dazugehoerige SVG.
Per userReading wird das Delta aus dem gemeldeten total berechnet, und angezeigt.

Beta-User

Da es v.a. von der Konfiguration des SML-Scripts abhängt, wann was gesendet wird (es gibt bei ESP-Familie einen thread dazu, auch zur Frage, ob es sinnvoll ist, teleperiode anzupassen...), würde ich ggf. einfach ein jsonMap setzen, um "allgemeinverständliche Readings" zu bekommen. Z.B.:
SML_16_7_0:power
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

The-Holgi

#3
Zitat von: Beta-User am 03 April 2024, 19:55:48einfach ein jsonMap setzen, um "allgemeinverständliche Readings" zu bekommen. Z.B.:
SML_16_7_0:power
Hallo, kannst du das vielleicht genauer erklären? Insbesondere auf die Uhrzeit die auch im Sekundentakt übertragen wird, könnte ich gut verzichten.
teleperiode habe ich mal auf 10 gesetzt, die readings kommen trotzdem jede Sekunde.
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Beta-User

Zitat von: The-Holgi am 04 April 2024, 05:36:36
Zitat von: Beta-User am 03 April 2024, 19:55:48einfach ein jsonMap setzen, um "allgemeinverständliche Readings" zu bekommen. Z.B.:
SML_16_7_0:power
Hallo, kannst du das vielleicht genauer erklären? Insbesondere auf die Uhrzeit die auch im Sekundentakt übertragen wird, könnte ich gut verzichten.
teleperiode habe ich mal auf 10 gesetzt, die readings kommen trotzdem jede Sekunde.

Also: jsonmap hat mit der teleperiode nichts zu tun, das ändert nur den Namen des Readings, wie du vielleicht beim Testen schon rausgefunden hast. Ansonsten zur Syntax bitte die Doku (commandref oder z.B. "Schritt für Schritt" im Wiki) konsultieren.

Wenn du die teleperiode wirktlich auf 10 gesetzt hast (reboot und gegengecheckt?), sollte nicht jede Sekunde was kommen, es sei denn, dein Script ist so eingestellt (darüber kann man z.B. auch die teleperiode wieder ändern!). Fragen zu "wie publishe ich außerhalb der teleperiode was aus einem SML-Script" beantworte ich gerne in dem anderen thread nach dessen (gründlicher) Lektüre deinerseits. (ich müßte den auch suchen...)
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