Autor Thema: httpmod.template: bugs, Fragen, Anregungen  (Gelesen 6312 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #105 am: 23 März 2020, 13:50:29 »
Dat läuft unerwartet zufriedenstellend. Zumindest bei mir. :)
Dat war nicht unerwartet, dat war ausnahmsweise getestet und ist auch samt den ";;" bereits im svn... :P
Dat stammt aus meinem Vorschlag für einen dynamischen Tamota-Raum ("extraRooms"), siehe den "Tasmota-template-Strukur"-Thread im MQTT-Bereich ;) .

Zitat
Tasmota und MQTT2 sind noch Neuland für mich. Mir fehlt einen Ansatz das Ganze zu debuggen. Aber das wird hier OT. Wie oft muss man so ein Tasmota-Device neustarten? oO
Bitte dazu ggf. einen separaten Thread im MQTT-Bereich aufmachen. Für's debuggen einfach den MQTT-Verkehr mithören (rawEvents@MQTT2-SERVER, z.B.). Für Hilfe bitte ggf. ein RAW mit posten sowie ggf. die zugehörigen MQTT-Messages, falls was "verloren gegangen" sein sollte.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline joelinux

  • New Member
  • *
  • Beiträge: 28
  • Doku, Doku, Doku...
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #106 am: 23 März 2020, 15:55:56 »
Mit dem default
attr DEVICE includeMQTTDeviceMode tasmota-onlywird die devspec
TYPE=MQTT[2]?_[D]EVICE:FILTER=Version!=,TYPE=MQTT[2]?_[D]EVICE:FILTER=INFO1_Version!=

Mit dem vorgeschlagenen Geräte Filter zur Auffindung von Tasmota Geräten wird bei mir eine leere Liste zurückgegeben.

Erst nach Änderung des Filters in
TYPE=MQTT[2]?_[D]EVICE:FILTER=Version!=,TYPE=MQTT[2]?_[D]EVICE:FILTER=Version!=erhalte ich eine Liste. Insgeamt muß ich 3 Änderungen in tasmotaupdates vornehmen.

In Userreadings
foreach my $dev (devspec2array("TYPE=MQTT[2]?_[D]EVICE:FILTER=Version!=,TYPE=MQTT[2]?_[D]EVICE:FILTER=Version!=")) {
      my $version = ReadingsVal($dev,"Version",ReadingsVal($dev,"Version","0.0.0"));;

und in stateformat
$ret .= '</b></a> | ';;
        $ret .= '<b style="color:lightgray">';;
$ret .= '<a href="http://'.ReadingsVal($dev,"IPAddress",ReadingsVal($dev,"IPAddress","0.0.0.0")).'" target="_blank">';;
$ret .= sprintf("%7s",$old);;
Ich kann mich erinnern, das Tasmota vor Version 7.x irgendwann die Readings mit INFO1_ Präfix angeliefert hatte.
Mit Version 7 (oder auch noch früher) wurde das JSON Format verändert und die INFO1 bis INFO3 Nachrichten landen ohne INFOx_ Präfix in den Readings.

Mit Version 8.2.0 sieht ein Neustart in der Tasmota Web Konsole so aus:

00:00:05 HTP: Web-Server aktiv bei tasmota-hlt333-6760 mit IP-Adresse 192.168.x.xxx
00:00:05 UPP: Multicast (wieder-)verbunden
15:39:22 MQT: Verbindungsversuch...
15:39:22 MQT: verbunden
15:39:22 MQT: tele/tasmota-hlt333/LWT = Online (beibehalten)
15:39:22 MQT: cmnd/tasmota-hlt333/POWER =
15:39:22 MQT: tele/tasmota-hlt333/INFO1 = {"Module":"Hyleton-333","Version":"8.2.0(tasmota)","FallbackTopic":"cmnd/DVES_8D5A68_fb/","GroupTopic":"cmnd/tasmotas/"}
15:39:22 MQT: tele/tasmota-hlt333/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota-hlt333-6760","IPAddress":"192.168.x.xxx"}
15:39:22 MQT: tele/tasmota-hlt333/INFO3 = {"RestartReason":"Software/System restart"}
15:39:22 MQT: stat/tasmota-hlt333/RESULT = {"POWER1":"on"}
15:39:22 MQT: stat/tasmota-hlt333/POWER1 = on
15:39:22 MQT: stat/tasmota-hlt333/RESULT = {"POWER2":"off"}
15:39:22 MQT: stat/tasmota-hlt333/POWER2 = off
15:39:22 MQT: stat/tasmota-hlt333/RESULT = {"POWER3":"on"}
15:39:22 MQT: stat/tasmota-hlt333/POWER3 = on
15:39:22 MQT: stat/tasmota-hlt333/RESULT = {"POWER4":"off"}
15:39:22 MQT: stat/tasmota-hlt333/POWER4 = off
15:39:23 UPP: Multicast (wieder-)verbunden


Im FHEM Gerät eines Tasmota Gerätes sieht es dann so aus.

define MQTT2_HLT333 MQTT2_DEVICE DVES_8D5A68
attr MQTT2_HLT333 DbLogExclude .*
attr MQTT2_HLT333 IODev MQTT2_FHEM_Server
attr MQTT2_HLT333 alexaName Aroma_Lampe
attr MQTT2_HLT333 comment Admin Info and Channel 1 for MQTT2_HLT333, see also MQTT2_HLT333_CH2, MQTT2_HLT333_CH3, and MQTT2_HLT333_USB
attr MQTT2_HLT333 devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
attr MQTT2_HLT333 event-on-change-reading .*
attr MQTT2_HLT333 genericDeviceType switch
attr MQTT2_HLT333 icon hue_filled_outlet
attr MQTT2_HLT333 jsonMap POWER1:state Dimmer:pct
attr MQTT2_HLT333 model tasmota_3socketUSB_channel_split
attr MQTT2_HLT333 readingList tele/tasmota-hlt333/LWT:.* LWT\
  tele/tasmota-hlt333/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota-hlt333/STATE:.* { json2nameValue($EVENT,'state_',$JSONMAP) }\
  stat/tasmota-hlt333/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota-hlt333/STATUS:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota-hlt333/POWER1:.* state\
  stat/tasmota-hlt333/POWER2:.* POWER2\
  stat/tasmota-hlt333/POWER3:.* POWER3\
  stat/tasmota-hlt333/POWER4:.* POWER4\
  cmnd/tasmota-hlt333/POWER:.* POWER\
DVES_8D5A68:stat/tasmota-hlt333/UPGRADE:.* { json2nameValue($EVENT) }
attr MQTT2_HLT333 room Arbeitszimmer
attr MQTT2_HLT333 setList off:noArg cmnd/tasmota-hlt333/POWER1 0\
  on:noArg cmnd/tasmota-hlt333/POWER1 1\
  toggle:noArg cmnd/tasmota-hlt333/POWER1 2\
  x_Reboot:noArg cmnd/tasmota-hlt333/restart 1\
  x_Status:noArg cmnd/tasmota-hlt333/Status\
  x_setOtaUrl:multiple,http://thehackbox.org/tasmota/release/tasmota-DE.bin cmnd/tasmota-hlt333/OtaUrl $EVTPART1\
  x_upgrade:noArg   cmnd/tasmota-hlt333/upgrade 1\
  x_ShowHostname:noArg cmnd/tasmota-hlt333/Backlog setoption53 1;; Status;;\
  x_DisableBlinkLED:noArg cmnd/tasmota-hlt333/Backlog LEDPower 0;; setoption31 1;; Status;;\
  x_SaveData:0,1 cmnd/tasmota-hlt333/savedata $EVTPART1\
  x_Configuration cmnd/tasmota-hlt333/$EVTPART1 $EVTPART2\
  x_RuleButton:noArg cmnd/tasmota-hlt333/rule on button1#state=3 do backlog power1 2;; power2 2;; power3 2;; power4 2 endon on button1#state=2 do backlog power1 1;; power2 1;; power3;; power4 1 endon\
  x_RuleEnable:noArg cmnd/tasmota-hlt333/Backlog setoption1 1;; setoption32 15;; rule1 1\
  x_Location:noArg cmnd/tasmota-hlt333/Backlog Latitude 51.53800;; Longitude 7.256381;; Altitude 0\
x_NTPServer:multiple,fritz.box cmnd/tasmota-hlt333/ntpserver $EVTPART1
attr MQTT2_HLT333 stateFormat LWT\
state\
<a href="http://IPAddress" target="_blank">IPAddress</a>
attr MQTT2_HLT333 userReadings formatedUptime:state_UptimeSec.* { my $m = ReadingsVal($name,"state_UptimeSec",0)/60;;;; return sprintf "0 000 00:%02d", $m if $m < 60;;;; my $h = $m / 60;;;; $m %= 60;;;; return sprintf "0 000 %02d:%02d", $h, $m if $h < 24;;;; my $d = $h / 24;;;; $h %= 24;;;; return sprintf "0 %03d %02d:%02d", $d, $h, $m if $d <365;;;; my $y = $d / 365;;;; $d %= 365;;;; return sprintf "%d %03d %02d:%02d", $y, $d, $h, $m }

setstate MQTT2_HLT333 Online\
on\
<a href="http://192.168.1.206" target="_blank">192.168.x.xxx</a>
setstate MQTT2_HLT333 2020-03-21 19:40:46 FallbackTopic cmnd/DVES_8D5A68_fb/
setstate MQTT2_HLT333 2020-03-21 19:40:46 GroupTopic cmnd/tasmotas/
setstate MQTT2_HLT333 2020-03-21 19:40:46 Hostname tasmota-hlt333-6760
setstate MQTT2_HLT333 2020-03-21 19:40:46 IPAddress 192.168.x.xxx
setstate MQTT2_HLT333 2020-03-22 21:20:02 LWT Online
setstate MQTT2_HLT333 2020-03-21 19:40:46 Module Hyleton-333
setstate MQTT2_HLT333 2020-03-21 19:39:50 OtaUrl http://thehackbox.org/tasmota/release/tasmota-DE.bin
setstate MQTT2_HLT333 2020-03-22 21:20:02 POWER
setstate MQTT2_HLT333 2020-03-21 19:40:46 POWER2 off
setstate MQTT2_HLT333 2020-03-21 19:40:47 POWER3 on
setstate MQTT2_HLT333 2020-03-21 19:40:47 POWER4 off
setstate MQTT2_HLT333 2020-03-21 17:28:05 Restart Restarting
setstate MQTT2_HLT333 2020-03-21 19:40:46 RestartReason Software/System restart
setstate MQTT2_HLT333 2020-03-21 17:28:06 SaveData on
setstate MQTT2_HLT333 2020-03-21 17:28:06 SetOption26 on
setstate MQTT2_HLT333 2020-03-21 17:28:05 StateText1 off
setstate MQTT2_HLT333 2020-03-21 17:28:05 StateText2 on
setstate MQTT2_HLT333 2020-03-21 17:28:05 StateText3 toggle
setstate MQTT2_HLT333 2020-03-21 17:28:05 StateText4 hold
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_ButtonRetain 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_ButtonTopic 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_FriendlyName_1 Alexa-Arbeit-schwarz
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_FriendlyName_2 Arbeit-7
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_FriendlyName_3 Arbeit-8
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_FriendlyName_4 Arbeit-9
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_LedMask FFFF
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_LedState 1
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_Module 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_Power 5
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_PowerOnState 3
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_PowerRetain 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SaveData 1
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SaveState 1
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SensorRetain 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_1 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_2 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_3 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_4 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_5 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_6 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchMode_7 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchRetain 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_SwitchTopic 0
setstate MQTT2_HLT333 2020-03-21 17:28:05 Status_Topic tasmota-hlt333
setstate MQTT2_HLT333 2020-03-21 19:40:30 Upgrade Successful. Restarting
setstate MQTT2_HLT333 2020-03-21 19:40:46 Version 8.2.0(tasmota)
setstate MQTT2_HLT333 2020-03-21 19:40:46 WebServerMode Admin
setstate MQTT2_HLT333 2020-03-21 17:28:03 associatedWith MQTT2_HLT333_CH2,MQTT2_HLT333_CH3,MQTT2_HLT333_USB
setstate MQTT2_HLT333 2020-03-23 15:22:28 formatedUptime 0 001 19:41
setstate MQTT2_HLT333 2020-03-21 19:40:46 state on
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Heap 25
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_LoadAvg 19
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_MqttCount 6
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_POWER2 off
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_POWER3 on
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_POWER4 off
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Sleep 50
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_SleepMode Dynamic
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Time 2020-03-23T15:22:27
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Uptime 1T19:41:50
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_UptimeSec 157310
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_AP 1
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_BSSId F0:B0:14:5C:7B:10
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_Channel 6
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_Downtime 0T00:00:13
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_LinkCount 2
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_/RSSI 70
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_SSId Snoopy
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_Wifi_Signal -65
setstate MQTT2_HLT333 2020-03-23 15:22:28 state_state on
setstate MQTT2_HLT333 2020-03-22 21:20:13 subscriptions cmnd/DVES_8D5A68_fb/# cmnd/tasmota-hlt333/# cmnd/tasmotas/#

Mit freundlichem Gruß

joelinux
« Letzte Änderung: 23 März 2020, 16:01:48 von joelinux »
FHem on RPi2 Buster, Duofern Rollladen, ZWave Rolllade + Steckdosen, ZigBee (Philips, Tradfri), Tasmota (diverse Steckdosen, GU10 und E14 LSC Leds von Action, Sonoff RF Bridge), InterTechno Dimmer Steckdose ITLR-200

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #107 am: 23 März 2020, 17:36:59 »
...es wäre nett, wenn ihr bei Kommentaren die jeweils letzte Fassung in der attrTemplate-file in Bezug nehmen könntet, dann muß ich nicht raten, worin jetzt genau die Anregung liegen soll...

Der Vorschlag für den Filter von yersinia war ja schon wieder überholt, und den "Vorteil" von Konstruktionen wie
my $version = ReadingsVal($dev,"Version",ReadingsVal($dev,"Version","0.0.0"));;gegenüber meiner "Verschlimmbesserung"
my $version = ReadingsVal($dev,"Version",ReadingsVal($dev,"INFO1_Version","0.0.0"));;muß mir erst nochmal jemand näher erklären  :P ...

(Die Ausgangsfassung war: "my $version = ReadingsVal($dev,"INFO1_Version","0.0.0");;;;"... DIE lieferte auch bei mir kein Ergebnis 8) .)
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline joelinux

  • New Member
  • *
  • Beiträge: 28
  • Doku, Doku, Doku...
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #108 am: 25 März 2020, 07:45:14 »
gegenüber meiner "Verschlimmbesserung"
my $version = ReadingsVal($dev,"Version",ReadingsVal($dev,"INFO1_Version","0.0.0"));;muß mir erst nochmal jemand näher erklären  :P ...

(Die Ausgangsfassung war: "my $version = ReadingsVal($dev,"INFO1_Version","0.0.0");;;;"... DIE lieferte auch bei mir kein Ergebnis 8) .)

Es hat etwas gedauert, aber jetzt dämmert es. Die Verschachtelung von ReadingsVal innerhalb einer ReadingsVal ist die elegante Lösung.
Damit sind sowohl neue Tasmota Versionen als auch ältere Tasmota Versionen erfasst.  8)

[Annahme]
Die Verschachtelung geht davon aus das entweder das Reading "Version" oder das Reading "INFO1_Version" existiert.
Es wird für beide Fälle ein verwertbares Resultat zurück geliefert.
Sollte in ungewöhnlichen Fällen sowohl Version als auch INFO1_Version existieren wird im Resultat INFO1_Version bevorzugt.

Für Kanal 'split' Geräte werden nur die Stamm Geräte in die Liste aufgenommen wenn die vorhandenen mqtt Templates weiterhin die meisten Readings in den Unter Kanälen unterdrückt. Extrem cool  8) 8)
[/Annahme]

Mit freundlichem Gruß

joelinux
FHem on RPi2 Buster, Duofern Rollladen, ZWave Rolllade + Steckdosen, ZigBee (Philips, Tradfri), Tasmota (diverse Steckdosen, GU10 und E14 LSC Leds von Action, Sonoff RF Bridge), InterTechno Dimmer Steckdose ITLR-200

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #109 am: 25 März 2020, 11:29:38 »
 :) Fast...

Die "Annahmen" sind teils nicht ganz zutreffend, kurz zur Klarstellung, weil wir das ggf. an anderer Stelle wieder brauchen:
- In den Funktionen wie ReadingsVal() steht als drittes Argument immer der "fallback" => "Version" hätte Prio ;) . Steht auch so in der Doku (commandref).
- Bei "INFO._.*" geht es auch nicht um "neu" oder "alt", sondern um "autocreate" "complex" vs. "simple". Kurz war "complex" der default am MQTT2_SERVER gewesen, und man kann das heute noch generieren, wenn man complex aktiviert... (die IP-Adresse kommt über INFO2, da war also noch ein kleiner bug drin, der beim nächsten update raus sein sollte).
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 528
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #110 am: 22 April 2020, 13:15:28 »
Hallo Beta-User,

ich hab nen kleinen fix für den homematic fw check eingebaut und auf responsive Design umgestellt, sieht aus wie hier. Kannst du nochmal cross checken und -wenn du möchtest- einchecken?
#Contributed by Pfriemler & yersinia, see https://forum.fhem.de/index.php/topic,78501.msg1043080.html#msg1043080
name:hm_fw_check_v2
filter:TYPE=HTTPMOD
desc: check for homematic firmware updates; based on new link provided by Pfriemler (switch from eq-3.de to update.homematic.com)<br />Define a HTTPMOD device like <br>define hm_fw_check HTTPMOD https://update.homematic.com/firmware/api/firmware/search/DEVICE 86400<br /><a href="https://forum.fhem.de/index.php/topic,78501.msg1043080.html#msg1043080">Source: Forum</a>
order:X_01a
par:WHICHROOM;Actual room of the device, defaults to HTTPMOD; {AttrVal("DEVICE","room","HTTPMOD" )}
par:INTERVAL;Actual interval for updating, defaults to one day (86400s); {InternalVal("DEVICE","Interval",86400)}
defmod DEVICE HTTPMOD https://update.homematic.com/firmware/api/firmware/search/\DEVICE INTERVAL
attr DEVICE userattr reading01AutoNumLen reading01Name reading01RegOpt reading01Regex reading02AutoNumLen reading02Name reading02RegOpt reading02Regex readingMaxAge readingMaxAgeReplacementMode:text,reading,internal,expression,delete showNewFWOnly:yes,no
attr DEVICE do_not_notify 1
attr DEVICE enableControlSet 1
attr DEVICE icon hm_ccu
attr DEVICE reading01AutoNumLen 2
attr DEVICE reading01Name hmfw-type
attr DEVICE reading01RegOpt g
attr DEVICE reading01Regex (?i)"type":"((?:\w+[-]*){1,})
attr DEVICE reading02AutoNumLen 2
attr DEVICE reading02Name hmfw-version
attr DEVICE reading02RegOpt g
attr DEVICE reading02Regex (?si)"version":"(\d+[.]\d+[.]\d+)
attr DEVICE readingMaxAge 10
attr DEVICE readingMaxAgeReplacementMode delete
attr DEVICE room WHICHROOM
attr DEVICE showError 1
attr DEVICE showMatched 1
attr DEVICE showNewFWOnly yes
attr DEVICE stateFormat {   my $ret ="";;\
    my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"MATCHED_READINGS","2000-01-01 00:00:00"))));;\
my $nextCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(InternalVal($name,"TRIGGERTIME_FMT","2000-01-01 00:00:00"))));;\
my $cellstyle = "padding:3pt;;border-bottom:1px dotted lightgray;;";;\
    $ret .= '<div style="text-align:left;;">';;;;\
    $ret .= 'last <a title="eq3-downloads" href="http://www.eq-3.de/service/downloads.html">homematic</a>-fw-check => '.$lastCheck;;\
    $ret .= '<br />';;\
    my $check = ReadingsVal($name,"newFwForDevices","error => no or wrong data from eq3-server!");;\
    if($check eq "no fw-updates needed!") {\
      $ret .= '<div style="color:limegreen;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } elsif($check eq "error => no or wrong data from eq3-server!") {\
      $ret .= '<div style="color:red;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } else {\
$ret .= '<br /><div style="display:table;;width:100%;;">';;\
$ret .= '<div style="display:table-row;;">';;\
      $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:50%;;font-weight:bold;;">device</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:30%;;font-weight:bold;;">model</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;">current</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;">new</div>';;\
$ret .= '</div>';; #header\
      my @devices = split(',',$check);;\
      foreach my $devStr (@devices) {\
        #my ($dev,$md,$idx,$ofw,$nfw) = $devStr =~ m/([^\s]+)\s[(]([^\s]+)\s[(](\d+)[)]\sofw_([\d\.]+)\s=>\snfw_([\d\.]+)/;;\
my ($dev,$idx) = $devStr =~ m/([^\s]+)\s[(](\d+)[)]/;;\
my $md = ReadingsVal($name,("hmfw-type-".$idx),"?");;\
my $ofw = AttrVal($dev,"firmware","?");;\
my $nfw = ReadingsVal($name,("hmfw-version-".$idx),"none");;\
        my $fw_link = "https://ccu3-update.homematic.com/firmware/download?cmd=download&serial=0&product=".$md;;\
$ret .= '<div style="display:table-row;;">';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:50%;;">';;\
        $ret .= '<a href="/fhem?detail='.$dev.'" target="_blank">';;\
$ret .= AttrVal($dev,"alias",$dev);;\
        $ret .= '</a></div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:30%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $md;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;color:lightgrey;;">';;\
        $ret .= $ofw;;\
        $ret .= '</div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:10%;;font-weight:bold;;color:red;;">';;\
        $ret .= '<a title="download firmware file" href="'.$fw_link.'" rel="noopener noreferrer" target="_blank" style="color:red;;">';;\
        $ret .= $nfw;;\
        $ret .= '</a></div>';;\
        $ret .= '</div>';; #row\
      }\
  $ret .= '</div>';; #table\
    }\
$ret .= "<br /><div style=\"text-align:left;;\">(next check: ".$nextCheck.")</div>";;\
    $ret .= '</div>';;\
  return $ret;;\
}
attr DEVICE userReadings newFwForDevices:MATCHED_READINGS.* {\
  my $ret = "";;\
  my $newfwonly = AttrVal($name,"showNewFWOnly","yes");;\
  if (ReadingsVal($name,"UNMATCHED_READINGS","?") eq "") {\
    my @eq3FwList = map { \
sprintf(uc(ReadingsVal($name,"hmfw-type-".$_,"?")).":".ReadingsVal($name,"hmfw-version-".$_,"?").":".$_);;\
} ReadingsVal($name,"MATCHED_READINGS","?")=~ m/hmfw-version-(\d\d)/g;;\
\
foreach my $dev (devspec2array("TYPE=CUL_HM:FILTER=DEF=......:FILTER=subType!=(virtual|)")) {\
      my $md = AttrVal($dev,"model","?");;\
      my $v = AttrVal($dev,"firmware","0.0");;\
      my ($h,$l) = split('\.',$v);;\
      foreach my $newFW (grep m/^${md}:/i,@eq3FwList) {\
my ($fwmd, $fwv, $idx) = $newFW =~ m/([^:]+):(\d+[.]\d+[.]\d+):(\d+)$/;;\
my ($fwh, $fwl) = split('\.',$fwv);;\
if(($newfwonly eq "no") || (($fwh > $h) || (($fwh == $h) && ($fwl > $l)))) {\
          $ret .= "," if($ret ne "");;\
  $ret .= $dev." (".$idx.")";;\
        }\
      }\
    }\
  } else {\
    $ret = "error => no or wrong data from eq3-server!";;\
  }\
  return ($ret eq "")?"no fw-updates needed!":$ret;;\
}
attr DEVICE webCmd reread
attr DEVICE model homematic_fw_check_v2

Weil ich gerade dabei bin, anbei noch eine Optimierung für das heizoel Device:
#Contributed by subseven & yersinia, see https://forum.fhem.de/index.php/topic,107189.msg1017754.html#msg1017754
name:fuel_oil_check
filter:TYPE=HTTPMOD
desc: checks fuel oil prices via easyoil.com<br>Define a HTTPMOD device like<br />define heizoelpreis HTTPMOD https://www.esyoil.com/preisausgabe.php?pr-unloading-points=%%ENTLADESTELLEN%%&pr-product=8&pr-payment-type=2&%%ANHAENGER%%&pr-hose-length=%%SCHLAUCHLAENGE%%&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit= 3600<br /><a href="https://forum.fhem.de/index.php/topic,107189.msg1017754.html#msg1017754">Source: Forum</a>
order:order: 100005
par:WHICHROOM;Actual room of the device, defaults to HTTPMOD; {AttrVal("DEVICE","room","HTTPMOD" )}
par:INTERVAL;Actual interval for updating, defaults to hourly (3600s); {InternalVal("DEVICE","Interval",3600)}
defmod DEVICE HTTPMOD https://www.esyoil.com/preisausgabe.php?pr-unloading-points=%%ENTLADESTELLEN%%&pr-product=8&pr-payment-type=2&%%ANHAENGER%%&pr-hose-length=%%SCHLAUCHLAENGE%%&pr-app=1&pr-zip=%%PLZ%%&pr-amount=%%MENGE%%&submit= INTERVAL
attr DEVICE userattr reading010Name reading010OExpr reading010Regex replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value replacement03Mode:reading,internal,text,expression,key replacement03Regex replacement03Value replacement04Mode:reading,internal,text,expression,key replacement04Regex replacement04Value replacement05Mode:reading,internal,text,expression,key replacement05Regex replacement05Value
attr DEVICE enableControlSet 1
attr DEVICE group Spritpeise
attr DEVICE reading010Name Heizoelpreis
attr DEVICE reading010OExpr $val =~ s/,/\./;; $val;;
attr DEVICE reading010Regex ([\d\,]+)[\s]+€
attr DEVICE replacement01Mode text
attr DEVICE replacement01Regex %%PLZ%%
attr DEVICE replacement01Value 12345
attr DEVICE replacement02Mode text
attr DEVICE replacement02Regex %%MENGE%%
attr DEVICE replacement02Value 3000
attr DEVICE replacement03Mode text
attr DEVICE replacement03Regex %%ENTLADESTELLEN%%
attr DEVICE replacement03Value 1
attr DEVICE replacement04Mode text
attr DEVICE replacement04Regex %%SCHLAUCHLAENGE%%
attr DEVICE replacement04Value 40m
attr DEVICE replacement05Mode text
attr DEVICE replacement05Regex %%ANHAENGER%%
attr DEVICE replacement05Value pr-truck-type=short_vehicle
attr DEVICE room WHICHROOM
attr DEVICE stateFormat { my $price = 0.0;;\
$price = (AttrNum($name,"replacement02Value",0)*ReadingsNum($name,"Heizoelpreis",0))/100;;\
my $ret = "<div>".ReadingsTimestamp($name,"Heizoelpreis","-");;\
$ret .= "&nbsp;;<b><a href=\"".InternalVal($name,"displayurl","https://www.esyoil.com")."\" rel=\"noopener noreferrer\" target=\"_blank\">";;\
$ret .= ReadingsVal($name,"Heizoelpreis","-");;\
$ret .= "&euro;;</a></b>/100l";;\
$ret .= "&nbsp;;(".AttrVal($name,"replacement02Value","0")."l = ";;\
$ret .= sprintf("%.2f",$price);;\
$ret .= "&euro;;)</div>";;\
return $ret;;\
}
attr DEVICE webCmd reread
attr DEVICE model fuel_oil_check

Ach, wegen des lockdowns und weil es so schön ist, hier noch eines um die a-culfw firmware version zu prüfen - wenn es dafür überhaupt Bedarf gibt (mir fehlt eine Order hier, kannst du die ergänzen?):
#Contributed by yersinia, see https://forum.fhem.de/index.php/topic,97694.msg1045829.html#msg1045829
name:aculfw_fw_check
filter:TYPE=HTTPMOD
desc: checks a-culfw firmware updates<br />Define a HTTPMOD device like<br />define aculfw_fw_check HTTPMOD https://github.com/heliflieger/a-culfw/blob/master/CHANGELOG 86400<br /><a href="https://forum.fhem.de/index.php/topic,97694.msg1045829.html#msg1045829">Source: Forum</a>
order:order: XXXXX
par:WHICHROOM;Actual room of the device, defaults to HTTPMOD; {AttrVal("DEVICE","room","HTTPMOD" )}
par:INTERVAL;Actual interval for updating, defaults to daily (86400s); {InternalVal("DEVICE","Interval",86400)}
defmod DEVICE HTTPMOD https://github.com/heliflieger/a-culfw/blob/master/CHANGELOG INTERVAL
attr DEVICE userattr reading01Name reading01Regex updatableDevicesMode:onlyUpdatable,all
attr DEVICE do_not_notify 1
attr DEVICE enableControlSet 1
attr DEVICE event-on-update-reading LAST_ERROR,MATCHED_READINGS
attr DEVICE handleRedirects 1
attr DEVICE icon cul_usb
attr DEVICE reading01Name latestVersion
attr DEVICE reading01Regex \#\#\# ([\d]\.[\d]{2}\.[\d]{2})
attr DEVICE room WHICHROOM
attr DEVICE showError 1
attr DEVICE showMatched 1
attr DEVICE stateFormat { my $ret ="";;\
my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"MATCHED_READINGS","2000-01-01 00:00:00"))));;\
my $nextCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(InternalVal($name,"TRIGGERTIME_FMT","2000-01-01 00:00:00"))));;\
my $cellstyle = "padding:3pt;;border-bottom:1px dotted lightgray;;";;\
$ret .= '<div style="text-align:left;;">';;\
$ret .= 'last <a href="https://github.com/heliflieger/a-culfw" title="aculfw" rel="noopener noreferrer" target="_blank">a-culfw</a> version check => '.$lastCheck;;\
$ret .= '<br />';;\
    my $check = ReadingsVal($name,"updatableDevices","error => no or wrong data from server!");;\
    if($check eq "no updates needed!") {\
      $ret .= '<div style="color:limegreen;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } elsif($check eq "error => no or wrong data from server!") {\
      $ret .= '<div style="color:limegreen;;font-weight:bold;;">';;\
      $ret .= $check;;\
      $ret .= '</div>';;\
    } else {\
      my @devices = split(',',$check);;\
  $ret .= '<br /><div style="display:table;;width:80%;;">';;\
$ret .= '<div style="display:table-row;;">';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:60%;;font-weight:bold;;">device</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:20%;;font-weight:bold;;">current</div>';;\
  $ret .= '<div style="display:table-cell;;'.$cellstyle.'width:20%;;font-weight:bold;;">new</div>';;\
$ret .= '</div>';; #header\
      foreach my $devStr (@devices) {\
        my ($dev,$old,$new) = $devStr =~ m/^([^\s]+)\s\(([^\s]+)\s\|\s([^\)]+)\)$/;;\
$ret .= '<div style="display:table-row;;">';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:60%;;">';;\
$ret .= '<a href="/fhem?detail='.$dev.'" title="'.$dev.' ('.$old.')">';;\
$ret .= AttrVal($dev,"alias",$dev);;\
$ret .= '</a></div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:20%;;font-weight:bold;;">';;\
$ret .= '<a href="https://github.com/heliflieger/a-culfw/releases/tag/'.$old.'" title="a-culfw '.$old.'" rel="noopener noreferrer" target="_blank" style="color:lightgray;;">';;\
$ret .= $old;;\
        $ret .= '</a></div>';;\
$ret .= '<div style="display:table-cell;;'.$cellstyle.'width:20%;;font-weight:bold;;">';;\
        $ret .= '<a href="https://github.com/heliflieger/a-culfw/releases/tag/'.$new.'" title="a-culfw '.$new.'" rel="noopener noreferrer" target="_blank" style="color:red;;">';;\
        $ret .= $new;;\
        $ret .= '</a></div>';;\
$ret .= '</div>';; #row\
      }\
  $ret .= '</div>';; #table\
    }\
$ret .= "<br /><div style=\"text-align:left;;\">(next check: ".$nextCheck.")</div>";;\
$ret .= '</div>';;\
  return $ret;;\
}
attr DEVICE updatableDevicesMode onlyUpdatable
attr DEVICE userReadings updatableDevices {\
  my $ret = "";;\
  my $updateall = AttrVal($name,"updatableDevicesMode","");;\
  if (ReadingsVal($name,"MATCHED_READINGS","") eq "") {\
    $ret = "error => no or wrong data from server!";;\
  } else {\
    my $VERSION = ReadingsVal($name,"latestVersion","unknown");;\
    foreach my $dev (devspec2array("TYPE=CUL")) {\
      my $version = InternalVal($dev,"VERSION","unknown");;\
      $version =~ m/([\d]\.[\d]{2}\.[\d]{2})/;;\
      $version = $1;;\
      if(($updateall eq "all") || ($version ne $VERSION)) {\
        $ret .= "," if($ret ne "");;\
        $ret .= $dev." (".$version." | ".$VERSION.")";;\
      }\
    }\
  }\
  return ($ret eq "")?"no updates needed!":$ret;;\
}
attr DEVICE webCmd reread
attr DEVICE model aculfw_fw_check
« Letzte Änderung: 23 April 2020, 10:38:20 von yersinia »
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with Raspian Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #111 am: 22 April 2020, 17:56:43 »
Ohne crosscheck eingecheckt... wird schon passen :P .
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 528
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #112 am: 23 April 2020, 09:01:22 »
Ohne crosscheck eingecheckt... wird schon passen :P .
Sicher? https://svn.fhem.de/trac/changeset/21748/trunk inkludiert kein httpmod.template...
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with Raspian Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #113 am: 23 April 2020, 10:18:35 »
Ups, da waren die Änderungen in der falschen Datei ::) . Danke für den Hinweis, jetzt sind die neuen Versionen wirklich im svn.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline yersinia

  • Sr. Member
  • ****
  • Beiträge: 528
    • Cyanide & Happiness
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #114 am: 23 April 2020, 10:36:34 »
wird schon passen :P .
Jo, und das
attr DEVICE DbLogExclude .*
attr DEVICE alignTime 14:04
in allen Templates habe ich mehrfach übersehen - und erst gefunden als es im svn war. *facepalm*
Ich hab das oben korrigiert, sollte mMn nicht allzu große Auswirkungen haben bei den Usern. *pray*
Könntest du, wenne Zeit hast, das noch rausnehmen? *hundeblick* gerne auch per C&P
« Letzte Änderung: 23 April 2020, 10:38:36 von yersinia »
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with Raspian Buster (perl 5.28.1) | FTUI
nanoCUL@a-culfw-> 2x868 (1x ser2net), 1x433 | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #115 am: 23 April 2020, 10:42:07 »
 ;D Done!
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Schlimbo

  • Sr. Member
  • ****
  • Beiträge: 685
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #116 am: 06 Mai 2020, 23:19:53 »
Merci und ich lege gleich nochmal nach. Basierend auf Artikeln in meinem Blog, hier noch für die HP Printer ne Erweiterung und der Brother Scanner mit dazu als Template. Ich habe den letzteren mal unter B_02a rein sortiert, das kannst du natürlich machen wie deine Idee dazu ist ;) Dazu habe ich noch die aktuelle Notfallapotheke und für Pihole die statistiken ;)

Hallo zusammen,
im Template "hp_printer_cartridge_status" gibt es ein paar Zahlendreher:
die Werte für Magenta (reading02XPath-Strict) und Cyan (reading01XPath-Strict) sind vertauscht und der Wert für Schwarz (reading04XPath-Strict) funktioniert nicht.

Würde mich freuen wenn dies im Template angepasst werden könnte:
--- httpmod-orig.template 2020-05-06 23:02:08.000000000 +0200
+++ httpmod.template 2020-05-06 22:42:20.000000000 +0200
@@ -310,13 +310,13 @@
 attr DEVICE userattr reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict reading03Name reading03XPath-Strict reading04Name reading04XPath-Strict reading05Name reading05XPath-Strict reading06Name reading06XPath-Strict$
 attr DEVICE httpVersion 1.1
 attr DEVICE reading01Name Cyan
-attr DEVICE reading01XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
+attr DEVICE reading01XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
 attr DEVICE reading02Name Magenta
-attr DEVICE reading02XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumablePercentageLevelRemaining/text()
+attr DEVICE reading02XPath-Strict //ccdyn:ConsumableInfo[2]/dd:ConsumablePercentageLevelRemaining/text()
 attr DEVICE reading03Name Yellow
 attr DEVICE reading03XPath-Strict //ccdyn:ConsumableInfo[4]/dd:ConsumablePercentageLevelRemaining/text()
 attr DEVICE reading04Name Black
-attr DEVICE reading04XPath-Strict //ccdyn:ConsumableInfo[1]/dd:ConsumablePercentageLevelRemaining/text()
+attr DEVICE reading04XPath-Strict //ccdyn:ConsumableInfo[5]/dd:ConsumablePercentageLevelRemaining/text()
 attr DEVICE reading05Name CyanCatridgeModel
 attr DEVICE reading05XPath-Strict //ccdyn:ConsumableInfo[3]/dd:ConsumableSelectibilityNumber/text()
 attr DEVICE reading06Name MagentaCatridgeModel

Gruß Schlimbo
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 10420
  • eigentlich eher "user" wie "developer"
Antw:httpmod.template: bugs, Fragen, Anregungen
« Antwort #117 am: 07 Mai 2020, 07:22:08 »
Danke für die Info, neue Fassung kommt nachher per update :) .
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}
Gefällt mir Gefällt mir x 1 Liste anzeigen