mqtt2.template: bugs, Fragen, Anregungen

Begonnen von Beta-User, 15 Dezember 2018, 11:44:43

Vorheriges Thema - Nächstes Thema

Homalix99

Hallo,

habe heute shelly PM mini in Generation 3 erhalten.
Wäre dafür ein eigenes Template angebracht, bzw. gibt es da schon was?

Gruß

Alex
- RPI 4 fhem in Docker, 2 x Arduino Uno, HM-GW, HM-Dev. (Fensterkontakte, HK-Thermostate, div. Aktoren), JeeLink,
- GPIOs, HM-LAN, ESPs (MQTT2)
-Überwachung Fenster/Türen/Licht, HK-Thermostatregelung, Rollosteuerung, Überw. Betriebstemperaturen Heizung, Erfassung Gas/Wasser, PV-Anl., Wetter (WS1600)

Beta-User

Zitat von: Homalix99 am 14 Oktober 2024, 23:32:36Wäre dafür ein eigenes Template angebracht, bzw. gibt es da schon was?
Vielleicht versuchst du mal, ob ein bestehendes paßt, und ab hier gäbe es auch "Spaß" zu dem Thema: https://forum.fhem.de/index.php?msg=1322586
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

plin

Mein Template wled_controller zeigt mir zwar die Effekte als Namensliste an, ein set xxx efectname xyz zeigt aber keine Wirkung.

set xxx effect/effect_next/effect_prev/effect_random funktionieren.

FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

Beta-User

Zitat von: plin am 22 Oktober 2024, 11:26:02Mein Template wled_controller zeigt mir zwar die Effekte als Namensliste an, ein set xxx efectname xyz zeigt aber keine Wirkung.

set xxx effect/effect_next/effect_prev/effect_random funktionieren.


Moin, die Frage dürfte bei den WLED-Usern besser aufgehoben sein wie hier.
Über https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/mqtt2.template#L5434 geht es nach https://forum.fhem.de/index.php?topic=98880.0...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kennymc.c

Zigbee2MQTT plant wohl bald ein 2.0 Update mit dem die Unterstützung für die Legacy API entfernt werden soll (https://github.com/Koenkk/zigbee2mqtt/discussions/24198). So wie es aussieht scheinen die zigbee2mqtt Templates noch diese veralteten Topics zu verwenden wie z.B. /log, /bind|unbind, /ota_update, /device und /request. Ist da ein Update in Planung?

Beta-User

Zitat von: kennymc.c am 01 November 2024, 15:13:43Ist da ein Update in Planung
Öhm, bin zwar jüngst auf z2m gewechselt (und störe mich an den vielen "unnötigen" Topics, aber das ist bisher an mir vorbeigegangen...

Vorschläge für Updates sind immer willkommen, sonst folgt halt ggf. irgendwann ein update, wenn es mir selbst zu bunt wird oder der update eingespielt ;D .

Wir sollten dazu ggf. mal einen neuen Thread aufmachen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kennymc.c

Die 2.0 soll es ab morgen im dev Branch zum Testen geben und ab dem 3. Januar ist der reguläre Release geplant

kabanett

Hallo,
ich musste einen Shelly 2.5 neue Kondensatoren spendieren und nach dem Reset, neu als Roller in fhem anbinden.
Warum auch immer, wurde das Template: shelly25_roller_invert_0 verschlimmbessert.

Könnte man das Atrribut devStateIcon wieder in die alte Version zurück versetzen?
.*/opens:fts_shutter_up@red .*/closes:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 0/stop:fts_shutter_100 100/stop:fts_shutter_10 9\d/stop:fts_shutter_10 8\d/stop:fts_shutter_20 7\d/stop:fts_shutter_30 6\d/stop:fts_shutter_40 5\d/stop:fts_shutter_50 4\d/stop:fts_shutter_60 3\d/stop:fts_shutter_70 2\d/stop:fts_shutter_80 1\d/stop:fts_shutter_90 0\d/stop:fts_shutter_100 set_.*:fts_shutter_updown
statt
.*/open:fts_shutter_up@red .*/close:fts_shutter_down@red true:10px-kreis-gruen false:10px-kreis-rot 0/stop:fts_shutter_100 100/stop:fts_shutter_10 9\d/stop:fts_shutter_10 8\d/stop:fts_shutter_20 7\d/stop:fts_shutter_30 6\d/stop:fts_shutter_40 5\d/stop:fts_shutter_50 4\d/stop:fts_shutter_60 3\d/stop:fts_shutter_70 2\d/stop:fts_shutter_80 1\d/stop:fts_shutter_90 0\d/stop:fts_shutter_100 set_.*:fts_shutter_updown

Dann funktioniert auch die Anzeige während der Fahrt wieder.

Danke und 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

alkazaa

Eine Anregung:
Das Attribut 'autocreate' eines MQTT2_DEVICE steuert das Erweitern/Nicht-Erweitern der readingList eines vorhandenen MQTT2_DEVICE.
Standardmäßig ist es auf 1, was u.U. unnötig viele readings erzeugen kann, z.B. bei Shelly device, wenn man in deren Web-GUI 'rumkonfiguriert'.

Das kann man mit autocreate=0 zwar verhindern, aber man möchte vielleicht trotzdem sehen, was angelegt worden wäre.

Mein Vorschlag: das MQTT2_DEVICE autocreate bekommt drei Zustände on, off, inform.  Bei 'inform' schreibt es z.B. Log-Einträge o.ä. über die möglicherweise verpassten readings (bzw. der entsprechenden nicht vorgenommenen readingList Erweiterung)

Beta-User

Moin.

Zitat von: alkazaa am 22 Februar 2025, 21:08:46Mein Vorschlag: das MQTT2_DEVICE autocreate bekommt drei Zustände
Das hat nicht originär was mit attrTemplate zu tun, sondern eher mit MQTT2_DEVICE allgemein und wäre von daher ggf. in einem eigenen Thread besser aufgehoben.

Meine 2ct: Das braucht man nicht.

Vielleicht wäre es gut, bei viel mehr templates autocreate auf 0 zu setzen, aber prinzipiell gibt es mehr/andere Optionen, um zu sehen, was stattgefunden hätte. Mir fällt spontan ein:
- "Show MQTT traffic" am IO anschalten, regex auf dieses Device begrenzen und dann einfach den Verkehr in Ruhe (ggf. mit einer Kopie) analysieren. Das gleiche geht ggf. mit Tools wie "mosquitto_sub".
- Testsystem oder "Paralleldevice" (gleiche ClientID) bemühen. Das muss man weder loggen noch irgenwie bedienen können, aber man kann sehen, wie insbesondere JSON ausgepackt würden wäre und mit den verschiedenen Spielarten von json2nameValue() rumspielen...
Oder man loggt damit grade sowas wie topic/value (siehe dazu auch im Wiki die "Schritt für Schritt-Seite").
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

DasQ

#580
openDTU wechselrichter und bridge änderungswunsch

hi,

nachdem ich von ahoydtu auf opendtu gewechselt bin sind mir in den mqtt templates dazu einige änderungen/fehler aufgefallen. ich nutze 5 Hoymiles microwechselrichter(4x1600 u. 1x1500) an 2 DTU`s, eine davon mit 2 funkmodulen. zuvor hatte ich AhoyDTU im einsatz, was aber zwei probleme mit sich brachte, meine ESP32 mit eth funzen nicht und Ahoy läuft brutal wacklig.

reproduzierbar in dem Template zu den wechselrichter, wird die variablenzuordnung in den readings bei /0/yieldday und /0/yieldtotal ins nirvana geschoben {} (siehe 1.screenshot).

hab ich händisch angepasst.
und damit das templates annähernd so aussicht wie das von Ahoy hab ich die
99_attrT_Ahoy_Utils.pm
angepasst und etwas abgeändert (2.screenshot)

raw angepasstes "hoymiles_opendtu_microinverter"
defmod 1500Terrasse MQTT2_DEVICE solar_116183138979
attr 1500Terrasse DbLogExclude .*
attr 1500Terrasse devStateIcon {FHEM::attrT_OpenDTU_Utils::devStateIcon($name)}
attr 1500Terrasse group PV
attr 1500Terrasse icon measure_photovoltaic_inst
attr 1500Terrasse model hoymiles_opendtu_microinverter
attr 1500Terrasse readingList solar/116183138979/name:.* name\
  solar/116183138979/status/reachable:.* reachable\
  solar/116183138979/status/producing:.* producing\
  solar/116183138979/status/last_update:.* last_update\
  solar/116183138979/device/bootloaderversion:.* bootloaderversion\
  solar/116183138979/device/fwbuildversion:.* fwbuildversion\
  solar/116183138979/device/fwbuilddatetime:.* fwbuilddatetime\
  solar/116183138979/device/hwpartnumber:.* hwpartnumber\
  solar/116183138979/device/hwversion:.* hwversion\
  solar/116183138979/status/limit_relative:.* limit_relative\
  solar/116183138979/status/limit_absolute:.* limit_absolute\
  solar/116183138979/0/powerdc:.* powerdc\
  solar/116183138979/0/yieldday:.* yieldday0\
  solar/116183138979/0/yieldtotal:.* yieldtotal0\
  solar/116183138979/0/voltage:.* voltage\
  solar/116183138979/0/current:.* current\
  solar/116183138979/0/power:.* power\
  solar/116183138979/0/frequency:.* frequency\
  solar/116183138979/0/temperature:.* temperature\
  solar/116183138979/0/powerfactor:.* powerfactor\
  solar/116183138979/0/efficiency:.* efficiency\
  solar/116183138979/0/reactivepower:.* reactivepower\
  solar/116183138979/1/voltage:.* voltage1\
  solar/116183138979/1/current:.* current1\
  solar/116183138979/1/power:.* power1\
  solar/116183138979/1/irradiation:.* irradiation1\
  solar/116183138979/1/yieldday:.* yieldday1\
  solar/116183138979/1/yieldtotal:.* yieldtotal1\
  solar/116183138979/1/name:.* name1\
  solar/116183138979/2/voltage:.* voltage2\
  solar/116183138979/2/current:.* current2\
  solar/116183138979/2/power:.* power2\
  solar/116183138979/2/irradiation:.* irradiation2\
  solar/116183138979/2/yieldday:.* yieldday2\
  solar/116183138979/2/yieldtotal:.* yieldtotal2\
  solar/116183138979/2/name:.* name2\
  solar/116183138979/3/voltage:.* voltage3\
  solar/116183138979/3/current:.* current3\
  solar/116183138979/3/power:.* power3\
  solar/116183138979/3/irradiation:.* irradiation3\
  solar/116183138979/3/yieldday:.* yieldday3\
  solar/116183138979/3/yieldtotal:.* yieldtotal3\
  solar/116183138979/3/name:.* name3\
  solar/116183138979/4/voltage:.* voltage4\
  solar/116183138979/4/current:.* current4\
  solar/116183138979/4/power:.* power4\
  solar/116183138979/4/irradiation:.* irradiation4\
  solar/116183138979/4/yieldday:.* yieldday4\
  solar/116183138979/4/yieldtotal:.* yieldtotal4\
  solar/116183138979/4/name:.* name4\
solar/116183138979/radio/tx_request:.* tx_request\
solar/116183138979/radio/tx_re_request:.* tx_re_request\
solar/116183138979/radio/rx_success:.* rx_success\
solar/116183138979/radio/rx_fail_nothing:.* rx_fail_nothing\
solar/116183138979/radio/rx_fail_partial:.* rx_fail_partial\
solar/116183138979/radio/rx_fail_corrupt:.* rx_fail_corrupt\
solar/116183138979/radio/rssi:.* rssi
attr 1500Terrasse room Strom
attr 1500Terrasse setList on:noArg solar/116183138979/cmd/power 1\
  off:noArg solar/116183138979/cmd/power 0\
  reboot:noArg solar/116183138979/cmd/restart 1\
  limit_non_persistent_abs solar/116183138979/cmd/limit_persistent_absolute $EVTPART1\
  limit_non_persistent_pct:slider,2,1,100 solar/116183138979/cmd/limit_persistent_relative $EVTPART1\
  limit_persistent_abs solar/116183138979/cmd/limit_nonpersistent_absolute $EVTPART1\
  limit_persistent_pct:slider,2,1,100 solar/116183138979/cmd/limit_nonpersistent_relative $EVTPART1
attr 1500Terrasse setStateList on off
attr 1500Terrasse webCmd :

setstate 1500Terrasse set_on
setstate 1500Terrasse 2025-07-15 06:56:06 IODev MQTT2_Broker
setstate 1500Terrasse 2025-07-11 14:18:47 associatedWith OpenDTU_9823408
setstate 1500Terrasse 2025-07-11 14:18:44 attrTemplateVersion 20240513
setstate 1500Terrasse 2025-07-21 10:39:31 bootloaderversion 100
setstate 1500Terrasse 2025-07-21 10:39:01 current 0.20
setstate 1500Terrasse 2025-07-21 10:39:01 current1 0.50
setstate 1500Terrasse 2025-07-21 10:39:01 current2 0.01
setstate 1500Terrasse 2025-07-21 10:39:01 current3 0.57
setstate 1500Terrasse 2025-07-21 10:39:01 current4 0.01
setstate 1500Terrasse 2025-07-21 10:39:01 efficiency 94.939
setstate 1500Terrasse 2025-07-21 10:39:01 frequency 50.00
setstate 1500Terrasse 2025-07-21 10:39:31 fwbuilddatetime 2021-12-24 18:21:00
setstate 1500Terrasse 2025-07-21 10:39:31 fwbuildversion 10018
setstate 1500Terrasse 2025-07-21 10:39:31 hwpartnumber 269627393
setstate 1500Terrasse 2025-07-21 10:39:31 hwversion 01.10
setstate 1500Terrasse 2025-07-21 10:39:01 irradiation1 0.000
setstate 1500Terrasse 2025-07-21 10:39:01 irradiation2 0.000
setstate 1500Terrasse 2025-07-21 10:39:01 irradiation3 0.000
setstate 1500Terrasse 2025-07-21 10:39:01 irradiation4 0.000
setstate 1500Terrasse 2025-07-21 10:39:31 last_update 1753087134
setstate 1500Terrasse 2025-07-21 10:39:31 limit_absolute 1500.00
setstate 1500Terrasse 2025-07-21 10:39:31 limit_relative 100.00
setstate 1500Terrasse 2025-07-21 10:39:31 name HM15Terras
setstate 1500Terrasse 2025-07-21 10:39:01 name1
setstate 1500Terrasse 2025-07-21 10:39:01 name2
setstate 1500Terrasse 2025-07-21 10:39:01 name3
setstate 1500Terrasse 2025-07-21 10:39:01 name4
setstate 1500Terrasse 2025-07-21 10:39:01 power 46.9
setstate 1500Terrasse 2025-07-21 10:39:01 power1 22.7
setstate 1500Terrasse 2025-07-21 10:39:01 power2 0.4
setstate 1500Terrasse 2025-07-21 10:39:01 power3 25.9
setstate 1500Terrasse 2025-07-21 10:39:01 power4 0.4
setstate 1500Terrasse 2025-07-21 10:39:01 powerdc 49.4
setstate 1500Terrasse 2025-07-21 10:39:01 powerfactor 0.909
setstate 1500Terrasse 2025-07-21 10:39:31 producing 1
setstate 1500Terrasse 2025-07-21 10:39:31 reachable 1
setstate 1500Terrasse 2025-07-21 10:39:01 reactivepower 21.5
setstate 1500Terrasse 2025-07-21 10:39:31 rssi -80
setstate 1500Terrasse 2025-07-21 10:39:31 rx_fail_corrupt 0
setstate 1500Terrasse 2025-07-21 10:39:31 rx_fail_nothing 1134
setstate 1500Terrasse 2025-07-21 10:39:31 rx_fail_partial 0
setstate 1500Terrasse 2025-07-21 10:39:31 rx_success 353
setstate 1500Terrasse 2025-07-20 19:47:17 state set_on
setstate 1500Terrasse 2025-07-21 10:39:01 temperature 17.8
setstate 1500Terrasse 2025-07-21 10:39:31 tx_re_request 116
setstate 1500Terrasse 2025-07-21 10:39:31 tx_request 1487
setstate 1500Terrasse 2025-07-21 10:39:01 voltage 235.0
setstate 1500Terrasse 2025-07-21 10:39:01 voltage1 45.9
setstate 1500Terrasse 2025-07-21 10:39:01 voltage2 45.9
setstate 1500Terrasse 2025-07-21 10:39:01 voltage3 45.8
setstate 1500Terrasse 2025-07-21 10:39:01 voltage4 45.8
setstate 1500Terrasse 2025-07-15 10:53:12 yieldday 1826
setstate 1500Terrasse 2025-07-21 10:39:01 yieldday0 71
setstate 1500Terrasse 2025-07-21 10:39:01 yieldday1 32
setstate 1500Terrasse 2025-07-21 10:39:01 yieldday2 1
setstate 1500Terrasse 2025-07-21 10:39:01 yieldday3 37
setstate 1500Terrasse 2025-07-21 10:39:01 yieldday4 1
setstate 1500Terrasse 2025-07-21 10:39:01 yieldtotal0 1593.531
setstate 1500Terrasse 2025-07-21 10:39:01 yieldtotal1 453.092
setstate 1500Terrasse 2025-07-21 10:39:01 yieldtotal2 334.372
setstate 1500Terrasse 2025-07-21 10:39:01 yieldtotal3 482.120
setstate 1500Terrasse 2025-07-21 10:39:01 yieldtotal4 323.947

die geänderte "99_attrT_Ahoy_Utils.pm" (kopiert und umbenannt auf "99_attrT_OpenDTU_Utils.pm", lässt sich aber sicherlich wieder auf eine datei reduzieren wenn man an entsprechenden readingsnamen ein regex einbaut. primär ändert sich nur groß und kleinschreibung
##############################################
# $Id: 99_attrT_Ahoy_Utils.pm 28254 2023-12-05 15:03:19Z Beta-User $
#

package FHEM::attrT_OpenDTU_Utils;    ## no critic 'Package declaration'

use strict;
use warnings;

use Color;
use GPUtils qw(GP_Import);

## Import der FHEM Funktionen
#-- Run before package compilation
BEGIN {

    # Import from main context
    GP_Import(
        qw(
          FW_makeImage
          AttrVal
          InternalVal
          ReadingsVal
          ReadingsNum
          ReadingsAge
          isday
          defs
          )
    );
}

sub main::attrT_OpenDTU_Utils_Initialize { goto &Initialize }

# initialize ##################################################################
sub Initialize {
  my $hash = shift;
  return;
}

# Enter you functions below _this_ line.

sub devStateIcon {
  my $devname = shift // return;
  my $panels  = shift // 4;
  my $colors  = shift // 0;

  return if !defined $defs{$devname};

  my $col = substr(Color::pahColor(-10,50,70,ReadingsNum($devname,'temperature',0),$colors),0,6);
  my $ret = FW_makeImage("sani_solar_temp\@$col",'file_unknown@grey');
  $ret .= ' ';
  $ret .= ReadingsNum($devname,'temperature',0,1);
  $ret .= ' °C / Limit ';
  $ret .= ReadingsNum($devname,'limit_relative',0,1);
  $ret .= ' %<br>';
  my $avail = ReadingsNum($devname,'reachable',0);
  $avail = $avail > 0 ? '10px-kreis-gruen' : isday() ? '10px-kreis-rot' :'10px-kreis-gelb';
  $ret .= FW_makeImage($avail, 'edit_settings');
  $ret .= ' ';

  if ( $panels > 1 ) {
    $ret .= ReadingsNum($devname,'power',0);
    $ret .= ' W / ';
    $ret .= ReadingsNum($devname,'yieldday0',0);
    $ret .= ' Wh';

    my $total = ReadingsNum($devname,'yieldtotal0',0,1);
    if ( $total > 0 ) {
      $ret .= ' / ';
      $ret .= $total;
      $ret .= ' kWh';
    }

    for (1..$panels) {
      $ret .= '<br>';
      $col = substr(Color::pahColor(0,50,100,ReadingsNum($devname,"irradiation$_",0),$colors),0,6);
      $ret .= FW_makeImage("solar\@$col",'file_unknown@grey');
      $ret .= ' ';
      $ret .= ReadingsNum($devname,"power$_",0);
      $ret .= ' W / ';
      $ret .= ReadingsNum($devname,"yieldday$_",0);
      $ret .= ' Wh';
      $total = ReadingsNum($devname,"yieldtotal$_",0,1);
      if ( $total > 0 ) {
        $ret .= ' / ';
        $ret .= $total;
        $ret .= ' kWh';
      }
    }
  } else {
    $col = substr(Color::pahColor(0,50,100,ReadingsNum($devname,"irradiation1",0),$colors),0,6);
    $ret .= FW_makeImage("solar\@$col",'file_unknown@grey');
    $ret .= ' ';
    $ret .= ReadingsNum($devname,'power',0);
    $ret .= ' W / ';
    $ret .= ReadingsNum($devname,'yieldday',0);
    $ret .= ' Wh';

    my $total = ReadingsNum($devname,'yieldtotal',0,1);
    if ( $total > 0 ) {
      $ret .= ' / ';
      $ret .= $total;
      $ret .= ' kWh';
    }
  }
  return qq(<div><p style="text-align:right">$ret</p></div>);
}

und noch die bridgeänderungen (reine optik)
defmod OpenDTU_1 MQTT2_DEVICE OpenDTU_1
attr OpenDTU_1 DbLogExclude .*
attr OpenDTU_1 autocreate 1
attr OpenDTU_1 bridgeRegexp solar/([[:xdigit:]]+)/.*:.*  "solar_$1"
attr OpenDTU_1 devStateIcon online:10px-kreis-gruen offline:10px-kreis-rot
attr OpenDTU_1 group PV
attr OpenDTU_1 icon solar
attr OpenDTU_1 model hoymiles_opendtu_hub_bridge
attr OpenDTU_1 readingList solar/dtu/uptime:.* uptime\
  solar/dtu/status:.* status\
  solar/dtu/ip:.* ip\
  solar/dtu/rssi:.' rssi\
  solar/dtu/hostname:.* hostname\
  solar/dtu/temperature:.* Temperatur\
  solar/ac/power:.* power\
  solar/ac/yieldtotal:.* yieldtotal\
  solar/ac/yieldday:.* yieldday\
  solar/ac/is_valid:.* is_valid\
  solar/dc/power:.* powerdc\
  solar/dc/irradiation:.* irradiation\
  solar/dc/is_valid:.* is_validdc\
OpenDTU_1:solar/dtu/heap/size:.* size\
OpenDTU_1:solar/dtu/heap/free:.* free\
OpenDTU_1:solar/dtu/heap/minfree:.* minfree\
OpenDTU_1:solar/dtu/heap/maxalloc:.* maxalloc
attr OpenDTU_1 room Strom
attr OpenDTU_1 setStateList on off
attr OpenDTU_1 sortby 1
attr OpenDTU_1 stateFormat <a href="http://ip" target="_blank">\
status\
</a>\
Leistung AC power W<br>\
Ertrag/Tag yieldday Wh

setstate OpenDTU_1 <a href="http://192.168.1.116" target="_blank">\
online\
</a>\
Leistung AC 271.5 W<br>\
Ertrag/Tag 426 Wh
setstate OpenDTU_1 2025-07-19 08:48:02 attrTemplateVersion 20240513
setstate OpenDTU_1 2025-07-21 10:45:01 free 173448
setstate OpenDTU_1 2025-07-21 10:45:01 hostname OpenDTU-95DE94
setstate OpenDTU_1 2025-07-21 10:45:01 ip 192.168.1.116
setstate OpenDTU_1 2025-07-21 10:45:02 irradiation 0.000
setstate OpenDTU_1 2025-07-21 10:45:02 is_valid 1
setstate OpenDTU_1 2025-07-21 10:45:02 is_validdc 1
setstate OpenDTU_1 2025-07-21 10:45:01 maxalloc 94196
setstate OpenDTU_1 2025-07-21 10:45:01 minfree 138548
setstate OpenDTU_1 2025-07-21 10:45:02 power 271.5
setstate OpenDTU_1 2025-07-21 10:45:02 powerdc 285.7
setstate OpenDTU_1 2025-07-21 10:45:01 size 282500
setstate OpenDTU_1 2025-07-20 23:54:21 status online
setstate OpenDTU_1 2025-07-21 10:45:01 uptime 39041
setstate OpenDTU_1 2025-07-21 10:45:02 yieldday 426
setstate OpenDTU_1 2025-07-21 10:45:02 yieldtotal 2954.979
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org