Autor Thema: Nochmals HMW_LC_BL1_DR und UZSU Smartvisu  (Gelesen 3324 mal)

Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« am: 25 April 2022, 15:49:42 »
Hallo,

bisher hat das mit dem "commandTemplate set $NAME level $EVENT"gepasst.

Siehe https://forum.fhem.de/index.php/topic,122270.0/

Da gab es zu jedem "blind" einen Eintrag unter
"WeekdayTimer" z.B.:"wdt_uzsu_EG_EsseckeLinksBlind"
Das sah dann z.B.: so aus:
define wdt_uzsu_EG_EsseckeLinksBlind WeekdayTimer EG_EsseckeLinksBlind en   MO,TU,WE,TH,FR,SA,SU|{sunrise_abs("REAL",1800,"07:30","08:00")}|0 MO,TU,WE,TH,FR,SA,SU|{sunset_abs("REAL",3600,,)}|40
setuuid wdt_uzsu_EG_EsseckeLinksBlind 61b3728e-f33f-088a-f7eb-643e5f2fde024f70
attr wdt_uzsu_EG_EsseckeLinksBlind commandTemplate set $NAME level $EVENT
attr wdt_uzsu_EG_EsseckeLinksBlind disable 0
attr wdt_uzsu_EG_EsseckeLinksBlind room UZSU

Seit neustem (ich habe das auf jeden Fall erst jetzt gesehen) werden dies Einträge bei einer Änderung gelöscht und es gibt pro Zeitereigniss einen eigenen Eintrag.
Sieht dann so aus (gekürzte Version):

define rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsGroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.*
setuuid rg_uzsu_EG_WohnzimmerRolloTuerBlind 62603cd3-f33f-088a-aac1-668067546e239980
attr rg_uzsu_EG_WohnzimmerRolloTuerBlind room UZSU
define wdt_uzsu_EG_WohnzimmerRolloTuerBlind_0 WeekdayTimer EG_WohnzimmerRolloTuerBlind en MO,TU,WE,TH,FR,SA,SU|{sunrise_abs("REAL",-1980,"07:30","08:30")}|15
setuuid wdt_uzsu_EG_WohnzimmerRolloTuerBlind_0 6261c2ec-f33f-088a-9027-6027ca6bdd0fe4ff
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_0 commandTemplate set $NAME  $EVENT
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_0 disable 0
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_0 group EG_WohnzimmerRolloTuerBlind
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_0 room UZSU
define wdt_uzsu_EG_WohnzimmerRolloTuerBlind_1 WeekdayTimer EG_WohnzimmerRolloTuerBlind en MO,TU,WE,TH,FR,SA,SU|{sunset_abs("REAL",1920,"22:01","23:00")}|100
setuuid wdt_uzsu_EG_WohnzimmerRolloTuerBlind_1 6261c2ec-f33f-088a-30f2-7daeaef9a952569e
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_1 commandTemplate set $NAME  $EVENT
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_1 disable 0
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_1 group EG_WohnzimmerRolloTuerBlind
attr wdt_uzsu_EG_WohnzimmerRolloTuerBlind_1 room UZSU

Ich habe leider nicht gefunden ob und wenn ja wo man die "commandTemplate" für ein Device vorgeben kann.
Schon bei einem Verändern der Position in der UZSU wird das commandTemplate geändert... und der Rollo bleibt stehen
Ich muss immer in alle wdt_uzsu_EG_WohnzimmerRolloTuerBlind_xyz Device rein und die wieder anpassen. 

Kann mir da jemand auf die Sprünge helfen...
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19331
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #1 am: 28 April 2022, 11:20:01 »
Hmm, vermutlich bist du im falschen Forenbereich. Das ist mAn. ein USZU-Problem, vielleicht auch eines vom WeekdayTimer (wobei ich im Moment jedenfalls auf die Schnelle nicht erkennen kann, dass eine Änderung der DEF eine automatische Änderung des commandTemplate nach sich ziehen würde).

Vorschlag: Verschiebe das mal.
Server: HP-T620@Debian 11, 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

Offline wvhn

  • Jr. Member
  • **
  • Beiträge: 94
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #2 am: 06 Mai 2022, 17:42:17 »
Moin Funsailor,

Wir hatten die UZSU-Funktionen für smarthomeNG erweitert und dafür in smartVISU v3.2 das Widget angepasst. Für fhem wurde zwar nichts bewusst verändert, aber vielleicht habe ich da etwas übersehen.

Das UZSU-Widget schreibt ja nur das Dict in das item, aus dem das UZSU-Plugin des Backends die Zeitplanung ableitet. Über das Logging des Websockets sollte sich feststellen lassen, ob es Unterschiede zwischen den Dicts in v3.1 und v3.2 gibt.

Gruß
Wolfram
« Letzte Änderung: 06 Mai 2022, 18:14:24 von wvhn »

Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #3 am: 12 Mai 2022, 21:06:12 »
Hallo Wolfram,
sorry, hat etwas länger gedauert.
Hab das nun mit Smartvisu 3.2, 3.1 und 2.9 versucht, in allen drei Versionen das selbe Problem.

Hier die Infos vom fronthem:
SmartVisu 3.2:
2022.05.12 20:11:13.164 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"connection":"conn-B4VU6RkX","sender":"192.xxx.xxx.xxx","identity":"unknown", "message":{"cmd":"item","id":"EGWzRolloTuerUhr.sw","val":{"list":[{"holiday":{"workday":false,"weekend":false},"active":true,"timeMax":"23:00","timeMin":"22:30","event":"sunset","timeCron":"sunset","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","time":"22:30<sunset+121m<23:00","delayedExec":{"active":false,"type":"String","value":"","deviceString":""},"condition":{"value":"","deviceString":"","active":false,"type":"String"},"timeOffsetType":"m","value":"100","timeOffset":"121"},{"time":"07:30<sunrise-31m<08:30","delayedExec":{"value":"","deviceString":"","active":false,"type":"String"},"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"15","timeOffset":"-31","condition":{"value":"","deviceString":"","type":"String","active":false},"timeOffsetType":"m","timeMax":"08:30","holiday":{"weekend":false,"workday":false},"active":true,"timeCron":"sunrise","timeMin":"07:30","event":"sunrise"}],"active":true}}}
2022.05.12 20:11:13.315 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.12 20:11:13.374 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.12 20:11:13.407 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"log":{"level":4,"text":"ws send to client{\"cmd\":\"item\",\"items\":[\"EGWzRolloTuerUhr.sw\",{\"list\":[{\"delayedExec\":{\"active\":false,\"type\":\"String\",\"value\":\"\",\"deviceString\":\"\"},\"holiday\":{\"weekend\":false,\"workday\":false},\"active\":true,\"timeCron\":\"sunset\",\"event\":\"sunset\",\"time\":\"22:30<sunset+121m<23:00\",\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"timeOffset\":\"121\",\"value\":\"100\",\"timeOffsetType\":\"m\",\"condition\":{\"value\":\"\",\"deviceString\":\"\",\"active\":false,\"type\":\"String\"},\"timeMax\":\"23:00\",\"timeMin\":\"22:30\"},{\"delayedExec\":{\"active\":false,\"type\":\"String\",\"value\":\"\",\"deviceString\":\"\"},\"active\":true,\"holiday\":{\"workday\":false,\"weekend\":false},\"timeCron\":\"sunrise\",\"event\":\"sunrise\",\"time\":\"07:30<sunrise-31m<08:30\",\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"value\":\"15\",\"timeOffset\":\"-31\",\"condition\":{\"active\":false,\"type\":\"String\",\"value\":\"\",\"deviceString\":\"\"},\"timeOffsetType\":\"m\",\"timeMax\":\"08:30\",\"timeMin\":\"07:30\"}],\"active\":true}]}","cmd":"log"}}
2022.05.12 20:11:13.407 4: ipc fronthem:127.0.0.1:33916 (ws): ws send to client{"cmd":"item","items":["EGWzRolloTuerUhr.sw",{"list":[{"delayedExec":{"active":false,"type":"String","value":"","deviceString":""},"holiday":{"weekend":false,"workday":false},"active":true,"timeCron":"sunset","event":"sunset","time":"22:30<sunset+121m<23:00","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","timeOffset":"121","value":"100","timeOffsetType":"m","condition":{"value":"","deviceString":"","active":false,"type":"String"},"timeMax":"23:00","timeMin":"22:30"},{"delayedExec":{"active":false,"type":"String","value":"","deviceString":""},"active":true,"holiday":{"workday":false,"weekend":false},"timeCron":"sunrise","event":"sunrise","time":"07:30<sunrise-31m<08:30","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"15","timeOffset":"-31","condition":{"active":false,"type":"String","value":"","deviceString":""},"timeOffsetType":"m","timeMax":"08:30","timeMin":"07:30"}],"active":true}]}
2022.05.12 20:11:13.407 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"log":{"cmd":"log","level":4,"text":"ws send to client{\"cmd\":\"item\",\"items\":[\"EG_WzRolladenTerrassenTuer.sw\",\"0\"]}"}}
2022.05.12 20:11:13.407 4: ipc fronthem:127.0.0.1:33916 (ws): ws send to client{"cmd":"item","items":["EG_WzRolladenTerrassenTuer.sw","0"]}

SmartVisu 3.1:
2022.05.12 20:20:24.878 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"connection":"conn-eTW0lhDW","sender":"192.xxx.xxx.xxx","identity":"unknown", "message":{"cmd":"item","id":"EGWzRolloTuerUhr.sw","val":{"list":[{"timeMin":"22:30","event":"sunset","timeCron":"sunset","timeMax":"23:00","active":true,"holiday":{"workday":false,"weekend":false},"timeOffset":"121","value":"100","timeOffsetType":"m","condition":{"active":false,"type":"String","value":"","deviceString":""},"delayedExec":{"type":"String","active":false,"value":"","deviceString":""},"time":"22:30<sunset+121m<23:00","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU"},{"timeCron":"sunrise","timeMin":"07:30","event":"sunrise","holiday":{"weekend":false,"workday":false},"active":true,"timeMax":"08:30","condition":{"active":false,"type":"String","value":"","deviceString":""},"timeOffsetType":"m","value":"16","timeOffset":"-31","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","time":"07:30<sunrise-31m<08:30","delayedExec":{"type":"String","active":false,"value":"","deviceString":""}}],"active":true}}}
2022.05.12 20:20:25.021 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.12 20:20:25.082 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.12 20:20:25.120 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"log":{"cmd":"log","text":"ws send to client{\"cmd\":\"item\",\"items\":[\"EGWzRolloTuerUhr.sw\",{\"list\":[{\"delayedExec\":{\"value\":\"\",\"deviceString\":\"\",\"type\":\"String\",\"active\":false},\"event\":\"sunset\",\"timeCron\":\"sunset\",\"holiday\":{\"workday\":false,\"weekend\":false},\"active\":true,\"timeOffset\":\"121\",\"value\":\"100\",\"timeOffsetType\":\"m\",\"condition\":{\"type\":\"String\",\"active\":false,\"value\":\"\",\"deviceString\":\"\"},\"time\":\"22:30<sunset+121m<23:00\",\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"timeMin\":\"22:30\",\"timeMax\":\"23:00\"},{\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"time\":\"07:30<sunrise-31m<08:30\",\"delayedExec\":{\"active\":false,\"type\":\"String\",\"deviceString\":\"\",\"value\":\"\"},\"condition\":{\"deviceString\":\"\",\"value\":\"\",\"active\":false,\"type\":\"String\"},\"timeOffsetType\":\"m\",\"value\":\"16\",\"timeOffset\":\"-31\",\"active\":true,\"holiday\":{\"workday\":false,\"weekend\":false},\"timeMax\":\"08:30\",\"timeCron\":\"sunrise\",\"event\":\"sunrise\",\"timeMin\":\"07:30\"}],\"active\":true}]}","level":4}}
2022.05.12 20:20:25.120 4: ipc fronthem:127.0.0.1:33916 (ws): ws send to client{"cmd":"item","items":["EGWzRolloTuerUhr.sw",{"list":[{"delayedExec":{"value":"","deviceString":"","type":"String","active":false},"event":"sunset","timeCron":"sunset","holiday":{"workday":false,"weekend":false},"active":true,"timeOffset":"121","value":"100","timeOffsetType":"m","condition":{"type":"String","active":false,"value":"","deviceString":""},"time":"22:30<sunset+121m<23:00","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","timeMin":"22:30","timeMax":"23:00"},{"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","time":"07:30<sunrise-31m<08:30","delayedExec":{"active":false,"type":"String","deviceString":"","value":""},"condition":{"deviceString":"","value":"","active":false,"type":"String"},"timeOffsetType":"m","value":"16","timeOffset":"-31","active":true,"holiday":{"workday":false,"weekend":false},"timeMax":"08:30","timeCron":"sunrise","event":"sunrise","timeMin":"07:30"}],"active":true}]}
2022.05.12 20:20:25.120 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"log":{"cmd":"log","text":"ws send to client{\"items\":[\"EG_WzRolladenTerrassenTuer.sw\",\"0\"],\"cmd\":\"item\"}","level":4}}
2022.05.12 20:20:25.120 4: ipc fronthem:127.0.0.1:33916 (ws): ws send to client{"items":["EG_WzRolladenTerrassenTuer.sw","0"],"cmd":"item"}


SmartVisu 2.9:
2022.05.12 20:31:23.503 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"connection":"conn-BwupTXFI","sender":"192.xxx.xxx.xxx","identity":"unknown", "message":{"cmd":"item","id":"EGWzRolloTuerUhr.sw","val":{"active":true,"list":[{"delayedExec":{"type":"String","active":false,"deviceString":"","value":""},"timeCron":"sunset","event":"sunset","active":true,"holiday":{"workday":false,"weekend":false},"timeOffset":"121","value":"100","timeOffsetType":"m","condition":{"deviceString":"","value":"","type":"String","active":false},"time":"22:30<sunset+121m<23:00","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","timeMin":"22:30","timeMax":"23:00"},{"time":"07:30<sunrise-31m<08:30","delayedExec":{"deviceString":"","value":"","active":false,"type":"String"},"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"15","timeOffset":"-31","condition":{"deviceString":"","value":"","active":false,"type":"String"},"timeOffsetType":"m","timeMax":"08:30","holiday":{"workday":false,"weekend":false},"active":true,"timeMin":"07:30","timeCron":"sunrise","event":"sunrise"}]}}}
2022.05.12 20:31:23.649 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.12 20:31:23.709 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.12 20:31:23.743 5: ipc fronthem:127.0.0.1:33916 (ws): receive {"log":{"text":"ws send to client{\"cmd\":\"item\",\"items\":[\"EGWzRolloTuerUhr.sw\",{\"active\":true,\"list\":[{\"timeMin\":\"22:30\",\"timeMax\":\"23:00\",\"timeOffset\":\"121\",\"value\":\"100\",\"timeOffsetType\":\"m\",\"condition\":{\"type\":\"String\",\"active\":false,\"value\":\"\",\"deviceString\":\"\"},\"time\":\"22:30<sunset+121m<23:00\",\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"timeCron\":\"sunset\",\"event\":\"sunset\",\"active\":true,\"holiday\":{\"weekend\":false,\"workday\":false},\"delayedExec\":{\"deviceString\":\"\",\"value\":\"\",\"active\":false,\"type\":\"String\"}},{\"timeOffset\":\"-31\",\"value\":\"15\",\"timeOffsetType\":\"m\",\"condition\":{\"active\":false,\"type\":\"String\",\"deviceString\":\"\",\"value\":\"\"},\"delayedExec\":{\"type\":\"String\",\"active\":false,\"value\":\"\",\"deviceString\":\"\"},\"time\":\"07:30<sunrise-31m<08:30\",\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"timeCron\":\"sunrise\",\"timeMin\":\"07:30\",\"event\":\"sunrise\",\"timeMax\":\"08:30\",\"holiday\":{\"workday\":false,\"weekend\":false},\"active\":true}]}]}","level":4,"cmd":"log"}}


Die letzten Änderungen der Zeiteinstellungen hatte ich im Juli 2021 gemacht, da gab es diese Probleme noch nicht.

Die "31_fronthemDevice.pm, 01_fronthem.pm, fhconverter.pm,99_fronthemUtils.pm und fronthemEditor.js" sind schon seit mindestens 20200611 nicht mehr geändert worden.
Könnte also eher an einem FHEM update liegen...

Wie finde ich da den Verursacher ???? ::)

Edit:
Gefunden  8)
Es liegt an dem Modul "98_WeekdayTimer.pm"
Das von mir beschriebene Verhalten kann ich mit der aktellen Version beobachten:
# $Id: 98_WeekdayTimer.pm 25632 2022-02-05 15:42:57Z Beta-User $
bei einer älteren Version z.B.:
# $Id: 98_WeekdayTimer.pm 23523 2021-01-16 05:44:32Z Beta-User $
funktioniert alles wie erwartet.

Soll ich das Theme jetzt nochmals veschieben oder hoffen das Beta-User hier mitliest? :-\



Edit:
Da war ich doch auf dem Holzweg, ich hatte vergessen den Tab upzudaten....
leider habe ich immer noch das Fehlverhalten, auch mit der "alten" Version von 98_WeekdayTimer.pm

Was mir aber ins Auge fällt sind diese 2 Zeilen im LOG:
2022.05.13 08:36:51.812 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
2022.05.13 08:36:51.875 3: defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind readingsgroup wdt_uzsu_EG_WohnzimmerRolloTuerBlind.* : defmod rg_uzsu_EG_WohnzimmerRolloTuerBlind: Cannot change the TYPE of an existing definition
« Letzte Änderung: 13 Mai 2022, 08:49:13 von Funsailor »
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #4 am: 13 Mai 2022, 09:23:56 »
 :(
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19331
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #5 am: 13 Mai 2022, 09:32:11 »
Das log liest sich so als würde es u.a. auch deswegen Probleme geben, weil da defmod-Befehle abgefeuert werden, bei denen "readingsgroup" - als TYPE angegeben ist. Vermutlich sollte da "readingsGroup" stehen. Ich kann aber nicht nachvollziehen, wo das herkommt...
Server: HP-T620@Debian 11, 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

Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #6 am: 13 Mai 2022, 10:32:11 »
In meiner Config kann ich kein "defmod" oder "CommandDefMod" finden.

Eine Windoof - Textsuche (Aus der aktuellen Ablage) über das gesamte fhem Verzeichniss bringt mich auch nicht weiter.
Defmod wird nur in der fhem.pl, in der console,js und in fhemweb.js gefunden.

Allerdings bin ich doch noch fündig geworden:

fhem('defmod rg_uzsu_' . $device . ' readingsgroup wdt_uzsu_' . $device . '.*');

Zu finden in der "99_fronthemUtils.pm" in der Funktion "sub UZSU_execute($$;$)"

Ich änder mal das "readingsgroup" in "readingsGroup" und teste das 8)

Edit:
Dann bekomme ich folgende Fehlermeldung:
 PERL WARNING: Use of uninitialized value $save in string eq at ./FHEM/99_fronthemUtils.pm line 183.

Der Parameter "level" wird scheinbar nicht gesichert.
Muss jetzt aber leider weg, mal sehen wie ich am WE weiterkomme




« Letzte Änderung: 13 Mai 2022, 10:59:14 von Funsailor »
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #7 am: 22 Mai 2022, 13:04:24 »
Hab mir das nun genauer angeschaut, werde aber nicht wirklich schlau daraus.
Wenn ich mir das Notify der UZSU anschaue, sehe ich bei dem REGEXP ein Ausrufezeichen und folgende Meldung:
Could not optimize the regexp:

    .*:uzsu:.*

How I tried (notifyRegexpCheck):

    .*:uzsu:.*: no match (ignored)

Hier noch der List UZSU:
Internals:
   DEF        .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }
   FUUID      5c5b3836-f33f-088a-aaca-ec751c4259979b8c
   NAME       UZSU
   NR         370
   NTFY_ORDER 50-UZSU
   REGEXP     .*:uzsu:.*
   STATE      2022-05-13 11:43:54
   TYPE       notify
   READINGS:
     2022-05-14 11:47:57   state           active
     2022-05-13 11:43:54   triggeredByDev  EG_EsseckeLinksBlind
     2022-05-13 11:43:54   triggeredByEvent uzsu: {"list":[{"delayedExec":{"deviceString":"","type":"String","active":false,"value":""},"timeCron":"sunrise","holiday":{"workday":false,"weekend":false},"value":"0","event":"sunrise","timeMax":"08:00","timeMin":"07:30","time":"07:30<sunrise+30m<08:00","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","timeOffsetType":"m","condition":{"deviceString":"","type":"String","active":false,"value":""},"active":true,"timeOffset":"30"},{"active":true,"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","time":"sunset+60m<22:00","timeMin":"","timeMax":"22:00","event":"sunset","timeOffset":"60","condition":{"value":"","active":false,"type":"String","deviceString":""},"timeOffsetType":"m","value":"40","holiday":{"weekend":false,"workday":false},"timeCron":"sunset","delayedExec":{"type":"String","deviceString":"","value":"","active":false}}],"active":false}
     2018-03-29 20:08:15   uzsu            {"active":true,"list":[{"holiday":{"weekend":false,"workday":false},"value":"on","time":"20:09","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","active":true,"event":"time","delayedExec":{"deviceString":"","value":"","active":false,"type":"String"},"timeCron":"20:09","timeMin":"","timeMax":"","timeOffset":"","condition":{"deviceString":"","value":"","active":false,"type":"String"}},{"holiday":{"weekend":false,"workday":false},"value":"off","time":"20:11","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","active":true,"event":"time","delayedExec":{"deviceString":"","value":"","active":false,"type":"String"},"timeCron":"20:11","timeMin":"","timeMax":"","timeOffset":"","condition":{"deviceString":"","value":"","active":false,"type":"String"}}]}
Attributes:
   DbLogExclude .*
   room       UZSU

Ich habe ja den Fehler (wenn das ein Fehler ist) mit dem "readingsgroup" in "readingsGroup" angepasst und erhalte nun die Meldung
PERL WARNING: Use of uninitialized value $save in string eq at ./FHEM/99_fronthemUtils.pm line 183.

Schau ich in der 99_fronthemUtils.pm nach, finde ich folgenden Hinweis:

#
# Nicht vergessen! In FHEM notify definieren!
#
#    define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }
#
# oder wenn Einstellungen gespeichert werden sollen:
#
#    define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1, 'save') }
#
# und folgendes Attribut setzen:
#
#    attr global autosave 1
#
sub UZSU_execute($$;$)

Angeleget hatte ich die UZSU mit

define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }

nach der Änderung in

.*:uzsu:.* { UZSU_execute($NAME, $EVTPART1, 'save') }

Ist die Fehlermeldung weg, aber der Eintrag im commandTemplate ist immer noch falsch:

commandTemplate set $NAME  $EVENT

Wer ist da zuständig und kann hier weiterhelfen?

Im Kopf ist
herrmannj
und
raman
erwähnt...

LG
Michael

- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #8 am: 04 September 2022, 15:04:59 »
Nach dem sich der Sommer dem Ende zu neigt, will ich die Rollladen Steuerzeiten über die SmartVisu-UZSU an die kommende kalte Zeiten anpassen.
Da die Perl Module der HM-LC-BL1PBU-FM Geräte mit "pct" arbeiten funktioniert das bei diesen Geräten ohne Probleme.
In den Modulen der HM485 Rollladen Geräte wird aber "level" verwendet und da wird es dann kompliziert.

In der "99_fronthemUtils" werden beim ändern der Zeiten zuerst alle wdt_uzsu_ Einträge gelöscht um diese im Anschluss mit "defmod rg_uzsu_ ..." mit den neuen Bedingungen neu zu generieren.

sub UZSU_execute($$;$)
{
    my ($device, $uzsu, $save) = @_;
    $uzsu = decode_json($uzsu);
   
    fhem('delete wdt_uzsu_'.$device.'.*');
   
    for (my $i = 0; $i < @{$uzsu->{list}}; $i++) {
        if ($uzsu->{list}[$i]->{active}) {
            my %rrule = UZSU_getRrules($uzsu->{list}[$i]{rrule});
            my $holiday = $uzsu->{list}[$i]{holiday}{weekend} && $uzsu->{list}[$i]{holiday}{workday} ? '' : $uzsu->{list}[$i]{holiday}{weekend} ? $rrule{'BYDAY'} ne '' ? ',$we' : '$we' : $uzsu->{list}[$i]{holiday}{workday} ? $rrule{'BYDAY'} ne '' ? ',!$we' : '!$we' : '';       
            my $time = $uzsu->{list}[$i]{event} eq "time" ?  $uzsu->{list}[$i]{time} : '{'.$uzsu->{list}[$i]->{event} .'_abs("REAL",' . $uzsu->{list}[$i]->{timeOffset} * 60 . ',' . ($uzsu->{list}[$i]->{timeMin} ne '' ? '"' . $uzsu->{list}[$i]->{timeMin} . '"' : '') . ',' . ($uzsu->{list}[$i]->{timeMax} ne '' ? '"' . $uzsu->{list}[$i]->{timeMax} . '"' : '') . ')}';   
            my $condition = UZSU_getCommand($uzsu->{list}[$i]{condition});
           
            my $weekdayTimer = $rrule{'BYDAY'} . $holiday . ($rrule{'BYDAY'} ne '' || $holiday ne '' ? "|" : '') . $time . "|" . $uzsu->{list}[$i]{value};   
            my $delayedExec = UZSU_getCommand($uzsu->{list}[$i]{delayedExec});
           
            fhem('defmod wdt_uzsu_' . $device . '_' . $i . ' WeekdayTimer ' . $device . ' en ' . $weekdayTimer . $condition);
            fhem('attr wdt_uzsu_' . $device . '_' . $i . ' room UZSU');
            fhem('attr wdt_uzsu_' . $device . '_' . $i . ' group ' . $device);
            fhem('setreading wdt_uzsu_' . $device . '_' . $i . ' weekdays ' . $weekdayTimer);
            fhem('defmod rg_uzsu_' . $device . ' readingsGroup wdt_uzsu_' . $device . '.*');
            fhem('attr rg_uzsu_' . $device . ' room UZSU');
            if ($delayedExec) {
                fhem('attr wdt_uzsu_' . $device . '_' . $i . ' delayedExecutionCond ' . $delayedExec);
            }
        }
    }

    if ($uzsu->{active}) {
        fhem('attr NAME=wdt_uzsu_' . $device . '_.*' . ' disable 0');
    }
    else {
        fhem('attr NAME=wdt_uzsu_' . $device . '_.*' . ' disable 1');
    }
    fhem('save', 1) if ($save eq 'save');   
}

Dabei wird vom Modul "98_WeekdayTimer" das Attribut

"commandTemplate set $NAME  $EVENT"

erzeugt. Leider funktioniert das so nicht, ich muss das Attribut von Hand in

"commandTemplate set $NAME level $EVENT"

ändern. Erst dann werden die Schaltbefehle ausgeführt. Bei 8 HM-485 Rollladen mit mehreren Schaltbefehlen pro Tag ist das sehr mühselig.

Wie kann ich das am besten umgehen?
  • In den Geräte-Modulen "level" in pct" ändern?
  • In der "99_fronthemUtils" vor dem löschen der  "wdt_uzsu_" das Attribut "CommandTemplate" einmalig einlesen und später wieder setzen? Wie komme ich an dieses Attribut? Und wer ist da im Moment der zuständige Maintainer um das dann einzupflegen?
  • andere Ideen?

Beta-User hat mir hier
https://forum.fhem.de/index.php/topic,122270.msg1168368.html#msg1168368
mitgeteilt, das WDT "level" benötigt. 
Hier noch das Listing eines der Module:
Internals:
   DEF        42000017_01
   FUUID      61aa8f2a-f33f-088a-c57c-995133f12af3168f
   NAME       EG_EsseckeLinksBlind
   NR         708
   STATE      50
   STILLDONETIME 0
   TYPE       HM485
   chanNo     01
   device     EG_EsseckeLinksDevice
   eventCount 81
   peerRole   actuator
   READINGS:
     2022-09-04 14   LevelShEsseckeLinksBlind 0
     2022-08-30 16   R-change_over_delay 0.50
     2022-08-30 16   R-logging       on
     2022-08-30 16   R-reference_run_counter 0
     2022-08-30 16   R-reference_running_time_bottom_top 23.00
     2022-08-30 16   R-reference_running_time_top_bottom 23.00
     2022-09-04 14   direction       none
     2022-09-04 14   level           50
     2022-09-04 14   pct             0
     2022-09-04 14   state           level_50
     2022-09-04 14   uzsu            {"active"
     2022-09-04 14   working         off
   devHash:
     DEF        42000017
     FUUID      61aa8f28-f33f-088a-70d4-931dc2f525d78bb5
     FailedConfigReads 0
     IODev      hm485
     NAME       EG_EsseckeLinksDevice
     NR         706
     RawDeviceType 154
     RawFwVersion 17
     STATE      ACK
     TYPE       HM485

Ein Unterschied fällt mir da auf:
Bei einem HM-LC-BL1PBU-FM Device wird beim Reading "state" 50 angezeigt
Bei dem  EG_EsseckeLinksBlind steht dort "state level_50"








- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19331
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #9 am: 04 September 2022, 15:12:55 »
Andere Option: cmdalias anlegen für die 8 Geräte, die statt "state"-Befehlen (?!?) ein explizites "level" dazwischen brauchen?
Server: HP-T620@Debian 11, 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

Offline raman

  • Full Member
  • ***
  • Beiträge: 134
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #10 am: 06 September 2022, 18:55:36 »
Hallo miteinander,
nachdem ich bei meinen alten Herrschaften zwangsweise FHEM neu aufsetzen muss, habe ich mich seit langem mal wieder mit der Kombination aus smartVisu und FHEM auseinandergesetzt, um alles wieder zum laufen zu bringen.
Nur kurz zur Info: Ich persönlich nutze FHEM nicht mehr, kann also nicht ausführlich testen und möchte auch nicht so viel Zeit in FHEM stecken!

@Funsailor:
Das Problem liegt glaube ich an mehreren Stellen. Zum einem werden beim Notify die Events nach Leerzeichen geteilt, was bei der Verwendung von Leerzeichen im Feld "Device/String" der Experteneinstellungen für "Condition" und "DelayedExec" zu einem Fehler in "UZSU_execute" führt. Zum anderen werden für "WeekdayTimer" in dieser Funktion nur "conditions" und keine "commands" generiert, die statt "commandTemplate" ausgeführt wird. Keine Ahnung, ob das jemals in der Kombination "WeekdayTimer" ging!?

Ich habe ein paar Änderungen in der 99_fronthemUtils.pm, um als command z.B. set $NAME level $EVENT für "WeekdayTimer" in UZSU setzen zu können. Als Befehle sind hier set, setstate und setreading gefolgt vom Readings-Namen möglich. Das Feld für Value bleibt leer. (Siehe auch Bild im Anhang)

Zuerst müssen zwei Funktionen irgendwo am Anfang ergänzt werden, die für die Ermittlung von Sonnenauf- und untergang nötig sind:

sub fronthem_sunrise($) {
  my ($hour,$min,$sec) = split(/:/, sunrise_abs($_[0]));
  return $hour . ':' . $min;
}

sub fronthem_sunset($) {
  my ($hour,$min,$sec) = split(/:/, sunset_abs($_[0]));
  return $hour . ':' . $min;
}

Die Funktion UZSU_execute durch folgende ersetzen:

###############################################################################
#
# Umsetzen der UZSU-Settings für ein device
#
###############################################################################
#
# Damit die Einstellungen gespeichert werden können, folgendes Attribut setzen:
#
# attr global autosave 1
#
sub UZSU_execute($$;$)
{
  my ($device, $uzsu, $save) = @_;
  $save = (defined($save) ? $save : "na");
  my $rg = AttrVal('rg_uzsu_'.$device, "room", "na");   
  fhem('delete wdt_uzsu_'.$device.'.*') if($rg ne "na");
  fhem('delete rg_uzsu_'.$device) if($rg ne "na");

  for (my $i = 0; $i < @{$uzsu->{list}}; $i++) {
    if ($uzsu->{list}[$i]->{active}) {
      my %rrule = UZSU_getRrules($uzsu->{list}[$i]{rrule});
      my $holiday = $uzsu->{list}[$i]{holiday}{weekend} && $uzsu->{list}[$i]{holiday}{workday} ? '' : $uzsu->{list}[$i]{holiday}{weekend} ? $rrule{'BYDAY'} ne '' ? ',$we' : '$we' : $uzsu->{list}[$i]{holiday}{workday} ? $rrule{'BYDAY'} ne '' ? ',!$we' : '!$we' : '';

      my $time = $uzsu->{list}[$i]{event} eq "time" ?  $uzsu->{list}[$i]{time} : '{'.$uzsu->{list}[$i]->{event} . '_abs("REAL"' . ($uzsu->{list}[$i]->{timeOffset} ne '' ? ',' . $uzsu->{list}[$i]->{timeOffset} * 60 : '') . ($uzsu->{list}[$i]->{timeMin} ne '' ? ', "' . $uzsu->{list}[$i]->{timeMin} . '"' : '') . ($uzsu->{list}[$i]->{timeMax} ne '' ? ', "' . $uzsu->{list}[$i]->{timeMax} . '"' : '') . ')}';
      my $condition = UZSU_getCommand($uzsu->{list}[$i]{condition});

      my $weekdayTimer = $rrule{'BYDAY'} . $holiday . ($rrule{'BYDAY'} ne '' || $holiday ne '' ? "|" : '') . $time . "|" . $uzsu->{list}[$i]{value};
      my $delayedExec = UZSU_getCommand($uzsu->{list}[$i]{delayedExec});

      fhem('defmod wdt_uzsu_' . $device . '_' . $i . ' WeekdayTimer ' . $device . ' en ' . $weekdayTimer . $condition);
      fhem('attr wdt_uzsu_' . $device . '_' . $i . ' room UZSU');
      fhem('attr wdt_uzsu_' . $device . '_' . $i . ' group ' . $device);
      fhem('setreading wdt_uzsu_' . $device . '_' . $i . ' weekdays ' . $weekdayTimer);
      fhem('defmod rg_uzsu_' . $device . ' readingsGroup wdt_uzsu_' . $device . '.*');
      fhem('attr rg_uzsu_' . $device . ' room UZSU');
  if ($delayedExec) {
        fhem('attr wdt_uzsu_' . $device . '_' . $i . ' delayedExecutionCond ' . $delayedExec);
      }
    }
  }
  if ($uzsu->{active}) {
    fhem('attr NAME=wdt_uzsu_' . $device . '_.*' . ' disable 0');
  }
  else {
    fhem('attr NAME=wdt_uzsu_' . $device . '_.*' . ' disable 1');
  }
  fhem('save', 1) if ($save eq 'save');
}

Dann noch UZSU_getCommand ersetzen:
sub UZSU_getCommand($)
{
  my ($command) = @_;
 
  if($command->{active} && $command->{type} ne "String")
  {
    if($command->{deviceString} =~ /^AttrVal|InternalVal|ReadingsVal\("\S+"\s?,\s?"\S+"\s?,\s?"\S*"\)$/)
    {
      return ' (' . $command->{deviceString} . ' ' . $command->{type} . ' "' . $command->{value} . '")';
    }
    elsif($command->{deviceString} =~ /^Value\("\S+"\)$/)
    {
      return ' (' . $command->{deviceString} . ' ' . $command->{type} . ' "' . $command->{value} . '")';
    }
  }
  elsif($command->{active} && $command->{type} eq "String" && $command->{deviceString} ne '')
  {
    if($command->{deviceString} =~ /^fhem ".+"( if\(.+\))?$/)
    {
      return ' {' . $command->{deviceString} . '}';
    }
    elsif($command->{deviceString} =~ /(setstate|setreading|set).([a-zA-Z]+)$/)
    {
      return ' ' . $1 . ' $NAME ' . $2 . ' $EVENT';
    }
    else
    {
      return ' (' . $command->{deviceString} . ')';
    }
  }
  return '';
}

Zum Schluss noch die Funktion UZSU ersetzen:
###############################################################################
# For use with UZSU-Widget in SV and UZSU-notify in fhem
# Setreading a device reading using JSON conversion (gadval => reading=decode_json() => setval => encode_json(reading) )
# The reading ("uzsu") for UZSU-enabled devices should be generated automatically
###############################################################################

sub UZSU(@)
{
  my ($param) = @_;
  my $cmd = $param->{cmd};
  my $gad = $param->{gad};
  my $gadval = $param->{gadval};

  my $device = $param->{device};
  my $reading = $param->{reading};
  my $event = $param->{event};
 
  my @args = @{$param->{args}};
  my $cache = $param->{cache};

  if ($param->{cmd} eq 'get')
  {
    $param->{cmd} = 'send';
  }
  if ($param->{cmd} eq 'send')
  {
    $param->{gad} = $gad;
$param->{gadval} = main::fronthem_decodejson(main::ReadingsVal($device, $reading, '{"active": false, "list": []}'));
$param->{gads} = [];

$param->{gadval}->{sunrise} = main::fronthem_sunrise("REAL");
$param->{gadval}->{sunset} = main::fronthem_sunset("REAL");

    return undef;
  }
  elsif ($param->{cmd} eq 'rcv')
  {
main::UZSU_execute($device, $gadval, 'save');
$gadval = main::fronthem_encodejson($gadval);
$gadval =~ s/;/;;/ig;
$param->{result} = main::fhem("setreading $device $reading $gadval");
$param->{results} = [];
    return 'done';
  }
  elsif ($param->{cmd} eq '?')
  {
    return 'usage: UZSU';
  }
  return undef;
}

"UZSU_execute" wird nicht mehr per Notify getriggert, sondern wird beim Anfordern der Daten von smartVisu ausgeführt.
Das Reading "uzsu" sollte jetzt für die verwendeten Devices automatisch gesetzt werden und muss nicht mehr manuell gesetzt werden.
Außerdem werden vor dem Senden an smartVisu die Zeiten für Sonnenauf/untergang gesetzt, damit die Warnung, das Plugin upzudaten, in smartVisu nicht ausgelöst wird. Außerdem sind noch ein paar Änderungen enthalten, die einige nervige Fehlermeldungen im Logfile unterdrücken sollten.
Mit uzsuicon sollte alles funktionieren, bei uzsugraph und uzsutable wird es mit Sicherheit zu Problemen kommen, da von FHEM die entsprechenden Daten im Json-Objekt nicht gesendet werden.

Eventuell kann ich damit ein wenig weiterhelfen ;)
« Letzte Änderung: 06 September 2022, 19:01:25 von raman »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline wvhn

  • Jr. Member
  • **
  • Beiträge: 94
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #11 am: 08 September 2022, 19:55:54 »
@raman wärst Du in der Lage, dies als Dateien zur Verfügung zu stellen, wie damals beim Update auf v2.9 (https://forum.fhem.de/index.php/topic,86584.msg790077.html#msg790077) ?

Da hier in den letzten Monaten einige wenige Änderungen im Forum diskutiert und getestet wurden, bin ich gerade dabei, den aktuellsten Stand in einem eigenen Repository zu sammeln - als Interimslösung bis @herrmannj dazu kommt, die Änderungen ins offizielle Repo zu übernehmen.

Deine Änderungen von damals habe ich schon mal mit den zwischenzeitlichen Änderungen im offiziellen Repo abgeglichen, so dass mein Repo aktuell den Stand repräsentiert, der bei den meisten Anwendern laufen sollte, die erst aus dem offiziellen Repo installiert haben und dann Deine Dateien drüber kopiert haben. Zusätzlich habe ich zwei Änderungen eingespielt, die negative Werte in Plots erlauben und das Zuspammen des Logs verhindern - beide hier aus dem Forum. Hier der Link: https://github.com/wvhn/fronthem/tree/develop

Mein Manko ist nur, dass ich das Ergebnis selbst nicht testen kann. Da bin ich auf Mithilfe angewiesen.

Gruß
Wolfram

« Letzte Änderung: 09 September 2022, 09:24:25 von wvhn »

Offline raman

  • Full Member
  • ***
  • Beiträge: 134
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #12 am: 09 September 2022, 21:39:06 »
Hallo Wolfram,

hier meine geänderten Dateien. Als Grundlage habe ich die Versionen aus deinem Repo genommen und mit meinen Änderungen versehen.

Änderungen sind:
- Port und Buffergröße für den websocket sind per Attribut veränderbar (fronthem) - ob das wirklich ohne Probleme läuft, sollte aber genau getestet werden!
- Umlaute im Zusammenhang mit smartVisu sollten funktionieren (schreiben und abrufen), werden aber in FHEM nicht richtig  dargestellt!
- UZSU_execute (und damit die Einstellungen für WeekdayTimer) wird nicht mehr per Notify getriggert, sondern beim Senden der Daten durch smartVisu
- Wie schon beschrieben, lassen sich dem WeekdayTimer commands über die Experteneinstellungen von UZSU "mitgeben"

In der Zip-Datei ist auch noch ein alternativer Treiber für smartVisu enthalten (io_purefhem.js). Eine Version ohne Addontreiber-Funktion. Ich habe das nie genutzt (wahrscheinlich viele andere auch nicht!?) und deshalb für meine Zwecke entfernt.
Der Treiber sollte mit den neuen Versionen von smartVisu laufen.

Alles sollte aber ausführlich getestet werden, bevor es jemand produktiv einsetzt. Damit kann ich leider nicht dienen, da ich FHEM nicht mehr aktiv im Einsatz und nur mit einem minimalen Testsystem alles auprobiert habe.

Gruß
raman



Offline wvhn

  • Jr. Member
  • **
  • Beiträge: 94
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #13 am: 09 September 2022, 23:59:55 »
Super! Vielen Dank, raman !

Das Repository ist jetzt wie folgt organisiert:
  • im master branch befindet sich die komplette bisherige Version mit Änderungen für smartVISU v2.9 (aktuell am meisten verwendeter Stand). Diese Version sollte ausreichend getestet sein.
  • im develop branch befindet sich die Version mit den neuesten Erweiterungen wie oben beschrieben. Dies ist ein Entwicklungsstand, der noch ausgiebig getestet werden muss.

Hier nochmal der Link: https://github.com/wvhn/fronthem

Gruß
Wolfram


Offline Funsailor

  • Full Member
  • ***
  • Beiträge: 226
Antw:Nochmals HMW_LC_BL1_DR und UZSU Smartvisu
« Antwort #14 am: 01 Oktober 2022, 13:18:09 »
Hallo,
vielen Dank das Ihr das Thema angegangen seit. Bin leider erst jetzt wieder dazu gekommen da ich zur Zeit mit der Planung "energetisch Sanieren" ziemlich eingespannt bin.

Aber zum Thema.
Habe alle Dateien aus dem Develop Branch übernommen, restart FHEM durchgeführt und die Einträge in dem UZSU Widget gemacht.
Bekomme aber folgende Fehlermeldung:
2022.10.01 13:54:15.784 5: ipc fronthem:127.0.0.1:51032 (ws): receive {"connection":"conn-QKdEkeCv","sender":"192.xxx.xxx.xxx","identity":"unknown", "message":{"cmd":"item","id":"EGWzRolloTuerUhr.sw","val":{"list":[{"active":false,"timeMax":"23:00","condition":{"active":true,"type":"String","value":"","deviceString":"set level "},"timeCron":"sunset","holiday":{"workday":false,"weekend":false},"timeMin":"22:30","event":"sunset","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"100","time":"22:30<sunset+121m<23:00","timeOffsetType":"m","delayedExec":{"value":"","type":"String","active":false,"deviceString":""},"timeOffset":"121"},{"timeOffsetType":"m","time":"07:30<sunrise-31m<08:30","timeOffset":"-31","delayedExec":{"deviceString":"","value":"","type":"String","active":false},"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"22","holiday":{"weekend":false,"workday":false},"timeMin":"07:30","timeCron":"sunrise","condition":{"deviceString":"set level","value":"","type":"String","active":true},"event":"sunrise","timeMax":"08:30","active":false},{"delayedExec":{"deviceString":"","value":"","active":false,"type":"String"},"timeOffset":"","time":"sunrise","timeOffsetType":"m","value":"38","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","event":"sunrise","condition":{"value":"","active":true,"type":"String","deviceString":"set level"},"timeCron":"sunrise","holiday":{"workday":false,"weekend":false},"timeMin":"","active":true,"timeMax":""}],"active":true}}}
2022.10.01 13:54:16.029 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $EVTPART2=   $evalSpecials->{'%EVTPART2'};my $EVTPART3=   $evalSpecials->{'%EVTPART3'};my $EVTPART4=   $evalSpecials->{'%EVTPART4'};my $EVTPART5=   $evalSpecials->{'%EVTPART5'};my $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{ UZSU_execute($NAME, $EVTPART1, 'save') }: Can't use string ("{"list":[{"timeOffsetType":"m",""...) as a HASH ref while "strict refs" in use at ./FHEM/99_fronthemUtils.pm line 159.

2022.10.01 13:54:16.029 3: UZSU return value: Can't use string ("{"list":[{"timeOffsetType":"m",""...) as a HASH ref while "strict refs" in use at ./FHEM/99_fronthemUtils.pm line 159.

2022.10.01 13:54:16.033 5: ipc fronthem:127.0.0.1:51032 (ws): receive {"log":{"cmd":"log","level":4,"text":"ws send to client{\"items\":[\"EGWzRolloTuerUhr.sw\",{\"list\":[{\"delayedExec\":{\"active\":false,\"type\":\"String\",\"value\":\"\",\"deviceString\":\"\"},\"timeOffset\":\"121\",\"time\":\"22:30<sunset+121m<23:00\",\"timeOffsetType\":\"m\",\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"value\":\"100\",\"event\":\"sunset\",\"condition\":{\"deviceString\":\"set level \",\"value\":\"\",\"active\":true,\"type\":\"String\"},\"timeMin\":\"22:30\",\"holiday\":{\"weekend\":false,\"workday\":false},\"timeCron\":\"sunset\",\"active\":false,\"timeMax\":\"23:00\"},{\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"value\":\"22\",\"timeOffsetType\":\"m\",\"time\":\"07:30<sunrise-31m<08:30\",\"timeOffset\":\"-31\",\"delayedExec\":{\"deviceString\":\"\",\"value\":\"\",\"active\":false,\"type\":\"String\"},\"timeMax\":\"08:30\",\"active\":false,\"timeCron\":\"sunrise\",\"timeMin\":\"07:30\",\"holiday\":{\"weekend\":false,\"workday\":false},\"condition\":{\"value\":\"\",\"type\":\"String\",\"active\":true,\"deviceString\":\"set level\"},\"event\":\"sunrise\"},{\"rrule\":\"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\",\"value\":\"38\",\"delayedExec\":{\"type\":\"String\",\"active\":false,\"value\":\"\",\"deviceString\":\"\"},\"timeOffset\":\"\",\"time\":\"sunrise\",\"timeOffsetType\":\"m\",\"active\":true,\"timeMax\":\"\",\"event\":\"sunrise\",\"condition\":{\"deviceString\":\"set level\",\"active\":true,\"type\":\"String\",\"value\":\"\"},\"timeCron\":\"sunrise\",\"holiday\":{\"weekend\":false,\"workday\":false},\"timeMin\":\"\"}],\"active\":true,\"sunrise\":\"07:30\",\"sunset\":\"19:01\"}],\"cmd\":\"item\"}"}}
2022.10.01 13:54:16.033 4: ipc fronthem:127.0.0.1:51032 (ws): ws send to client{"items":["EGWzRolloTuerUhr.sw",{"list":[{"delayedExec":{"active":false,"type":"String","value":"","deviceString":""},"timeOffset":"121","time":"22:30<sunset+121m<23:00","timeOffsetType":"m","rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"100","event":"sunset","condition":{"deviceString":"set level ","value":"","active":true,"type":"String"},"timeMin":"22:30","holiday":{"weekend":false,"workday":false},"timeCron":"sunset","active":false,"timeMax":"23:00"},{"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"22","timeOffsetType":"m","time":"07:30<sunrise-31m<08:30","timeOffset":"-31","delayedExec":{"deviceString":"","value":"","active":false,"type":"String"},"timeMax":"08:30","active":false,"timeCron":"sunrise","timeMin":"07:30","holiday":{"weekend":false,"workday":false},"condition":{"value":"","type":"String","active":true,"deviceString":"set level"},"event":"sunrise"},{"rrule":"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU","value":"38","delayedExec":{"type":"String","active":false,"value":"","deviceString":""},"timeOffset":"","time":"sunrise","timeOffsetType":"m","active":true,"timeMax":"","event":"sunrise","condition":{"deviceString":"set level","active":true,"type":"String","value":""},"timeCron":"sunrise","holiday":{"weekend":false,"workday":false},"timeMin":""}],"active":true,"sunrise":"07:30","sunset":"19:01"}],"cmd":"item"}
2022.10.01 13:54:16.033 5: ipc fronthem:127.0.0.1:51032 (ws): receive {"log":{"cmd":"log","level":4,"text":"ws send to client{\"items\":[\"EG_WzRolladenTerrassenTuer.sw\",\"0\"],\"cmd\":\"item\"}"}}
2022.10.01 13:54:16.034 4: ipc fronthem:127.0.0.1:51032 (ws): ws send to client{"items":["EG_WzRolladenTerrassenTuer.sw","0"],"cmd":"item"}

Die Fehlermeldungen sagen mir nicht wirklich viel... Aber ihr könnt euch bestimmt einen Reim darauf machen.

Gruß
Michael
« Letzte Änderung: 01 Oktober 2022, 13:55:15 von Funsailor »
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.0 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.01 -

 

decade-submarginal