[gelöst] Nochmals HMW_LC_BL1_DR und UZSU Smartvisu

Begonnen von Funsailor, 25 April 2022, 15:49:42

Vorheriges Thema - Nächstes Thema

wvhn

#15
Hi Michael,

leider kann ich hier nur bedingt helfen. Was ich sagen kann ist, dass das von smartVISU empfangene Dict für die UZSU korrekt und vollständig ist und dass das an smartVISU zurückgegenene Dict inhaltlich gleich ist, die ergänzten Werte für sunrise und sunset enthält, aber in der Reihenfolge der Attribute unterschiedlich ist. Letzteres ist für die Funktion der UZSU unerheblich, zeigt aber, dass die JSON-Daten in fronthem richtig dekodiert und wieder kodiert werden.

Die Fehlermeldung tritt in der Subroutine "UZSU_execute" auf, die das Dict auswerten soll und dazu über alle Einträge des Attributs "list" iterieren muss. Wenn ich das mit meinen nicht vorhandenen Perl-Kenntnissen richtig interpretiere,  enthält der Parameter "$uzsu" aber nur das Dict (übergeben als $gadval aus der Subroutine UZSU). Die FOR-Schleife benötigt aber ein Array und die Fehlermeldung besagt, dass ein String (das Dict) nicht als Array für das Iterieren verwendet werden kann.

Wenn Du Perl-Kenntnisse hast, könntest Du Dir die Variable $uzsu einmal ausgeben lassen, um zu prüfen, ob die Diagnose stimmt. Alternativ (ohne Gewähr) kannst Du die bisher in der UZSU_execute vorhandene Zeile
$uzsu = decode_json($uzsu);
direkt vor Zeile 159 in die ./FHEM/99_fronthemUtils.pm einfügen. Dies sollte das Dict wieder in ein Array wandeln. Wenn das nicht klappt, probiere es mal mit "fronthem_decodejson" statt "decode_json".

Gruß
Wolfram

Funsailor

#16
Hallo Wolfram,
meine Perl Kenntnisse sind so gut wie nicht vorhanden. Ich programmiere mit C / C++ und leite mir daraus Perl ab, was natürlich nur bei einfachen Programmen funktioniert.

Leider funktioniert dein Vorschlag nicht, mit
$uzsu = decode_json($uzsu);

erhalte ich folgende Fehler im LOG:

2022.10.11 12:42:39.804 1: MyVPN: error doing $result = fronthem::UZSU($param); malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_fronthemUtils.pm line 158.

2022.10.11 12:44:02.404 1: MyVPN: error doing $result = fronthem::UZSU($param); malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_fronthemUtils.pm line 158.

mit
$uzsu = fronthem_decodejson($uzsu);
folgende Meldungen:

2022.10.11 12:52:51.203 1: MyVPN: error doing $result = fronthem::UZSU($param); malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "(end of string)") at ./FHEM/99_fronthemUtils.pm line 18.



Ich werde morgen mal versuchen die Variable $uzsu ausgeben zu lassen, mal sehen was ich dann sehe


Edit: Bei diesen Versuchen hatte ich den Eintrage "set level" in den Bedingungen vergessen! Aber die Fehler sollten dann auch nicht vorkommen
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

wvhn

Schade.
Zum Eingrenzen des Fehlers wäre es noch gut zu wissen, ob der Fehler bei einfachen Einträgen mit reinen Zeitangaben auch auftritt, oder nur bei Einträgen mit Bedingungen.

Johann.S

#18
Hallo Funsailer,

kannst du vielleicht einen Screenshot von deinen uzsu Einstellungen zeigen?
Ich versuche dein Problem nach zu stellen!


Habe deine Einstellungen nachgestellt!
Was willst du mitset level machen, ich vermute mal die Rollo schliessen?

Versuche es mal mit:set EGWzRolloTuerUhr level 100
   |         |                      |        |
cmd  device                attr    value

Je nach dem ob 100 zu und 0 auf oder umgekehrt ist!

Wobei Condition eigentlich eine Bedingung ist die abgefragt wird!
Ich habe das bei den Rollos im Device gelöst, so das dass Device auf on/off reagieren kann!
defmod Rollo_WZ_links Dooya 11110....
attr Rollo_WZ_links IODev PI_433MHz
attr Rollo_WZ_links SignalRepeats 10
attr Rollo_WZ_links channel 1
attr Rollo_WZ_links cmdIcon auf:black_up stop:remotecontrol/black_btn_STOP zu:black_down
attr Rollo_WZ_links devStateIcon open:fts_shutter_10@green closed:fts_shutter_100@blue 100:fts_shutter_100 90:fts_shutter_90 80:fts_shutter_80 70:fts_shutter_70 60:fts_shutter_60 50:fts_shutter_50 40:fts_shutter_40 30:fts_shutter_30 20:fts_shutter_20 10:fts_shutter_10 "":fts_shutter_10
attr Rollo_WZ_links drive-down-time-to-100 20.92
attr Rollo_WZ_links drive-down-time-to-close 26.21
attr Rollo_WZ_links drive-up-time-to-100 5.43
attr Rollo_WZ_links drive-up-time-to-open 27.69
attr Rollo_WZ_links event-min-interval .*:300
attr Rollo_WZ_links event-on-change-reading .*
attr Rollo_WZ_links eventMap on:zu off:auf stop:Stop
attr Rollo_WZ_links webCmd auf:stop:zu:pos


Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

Funsailor

#19
Hallo Johannes,
toll das sich noch jemand für diesen Fall interessiert.
Ich habe das Thema wegen der vielen ,,Hausarbeiten" erst mal zurückstellen müssen, ich bin froh das es im Moment Fehlerfrei läuft.
Wenn ich eine Einstellung ändere muss ich nur daran denken das CommandTemplate in den wdt_.xyz anzupassen (set $NAME level $EVENT)

Das Problem tritt ja nur auf, wenn ich auf der SmartVISU Oberfläche mit der UZSU des jeweiligen Rollos Einstellungen ändere. Dann erzeugt das Dict der UZSU einen falschen Eintrag in den zugehörigen wdt_ Attributen. Wenn ich den Eintrag im Attribut CommandTemplate angepasst habe, läuft die Steuerung der Rollos wieder astrein. 
Der Eintrag ,,set level" bezieht sich nur auf dieses Attribut, es geht hier nicht um die direkte Steuerung der Rollos. Letztendlich liegt es daran, dass die Variable des Wertes normalerweise ,,pct" genannt wird, die HM485 Geräte nutzen aber ,,level". Ich habe auch schon mit ,,EventMap" oder ,,cmdalias"  versucht, hat auch nicht funktioniert.

Gruß
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

wvhn

Hallo Johann und Michael,

wir haben aktuell zwei Versionen am Start:

  • die bisherige Umsetzung der UZSU, bei der Michael das Problem mit den Command Templates hat
  • die neue Version im develop branch, in der @raman das Problem von Michael adressiert hat. Diese hat bei Michael nicht funktioniert, so dass wir im Moment keinen Nachweis haben, ob UZSU in dieser Version überhaupt richtig funktioniert. @raman konnte dies nach eigenen Angaben nur in Grundzügen testen, da er fhem selbst nicht mehr verwendet.

Wichtig ist deshalb, dass wir hier immer dokumentieren, auf welche Version sich die Aussagen beziehen. Zudem wäre mein Ziel, dass die neue Version getestet wird und dass nach Möglichkeit die Beschreibung der Konfigurationsschritte vervollständigt wird.

Danke und Gruß
Wolfram

Johann.S

Hallo Wolfram,

ich teste nur im Developer-Branch. ???

Im Aktivsystem ist alles auf aktuelen fhem-Stand!
Dort habe ich Dooya Rollos in kombination mit sunris, sunset und Temperaturwerten und sonoff mit ESPEASY in kompination mit Regenwerten!
funktioniert bei mir reibungslos.

Im Testsystem ist der Developer-Branch plus die neue 99_fronthemUtils.pm von Franz.
In diesem System wird nichts in die Datenbank geschrieben und keine Schalter bedient mit Ausname eines Test-sonoff!

Michaels Problem habe ich im Testsystem nachgestellt und mit meinen Test-sonoff verbunden!
Daran bin ich am werkeln!

Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

Johann.S

Hallo Michael,

kannst du mir bitte noch deine fronthem Einstellungen für den plot, den Aufruf in smartVISU und
deine Änderung im Attribut CommandTemplate schicken?
Hilfreich währe auch ein Screenshot deines Items!

Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

Funsailor

Hallo Wolfgang,
ich habe wieder die bisherige Umsetzung der UZSU installiert, damit geht es wenigstens halbwegs.

Hallo Johannes,
ich kopier die Fronthem Einstellungen des Items aus der Config, das geht schneller:

      "EGEsseckeFensterLinksUhr.sw" : {
         "reading" : "uzsu",
         "type" : "item",
         "device" : "EG_EsseckeLinksBlind",
         "converter" : "UZSU",
         "set" : "uzsu"
      },

Aufruf der UZSU in SmartVisu:
          {{ device.uzsuicon('EGEsseckeFensterLinksUhr', 'EGEsseckeFensterLinksUhr.sw',   'EGEsseckeFensterLinksUhr',      '', '', 'num', [0, 100]) }}



Hier der List des  wdt....

Internals:
   CFGFN     
   COMMAND   
   CONDITION 
   DEF        EG_EsseckeLinksBlind en MO,TU,WE,TH,FR|{sunrise_abs("REAL",900,"07:30","07:03")}|10
   DEVICE     EG_EsseckeLinksBlind
   FUUID      637cccd3-f33f-088a-832c-86113797a3cf1772
   GlobalDaylistSpec
   LANGUAGE   en
   NAME       wdt_uzsu_EG_EsseckeLinksBlind_0
   NR         6870
   Profil 1: Monday 07:02:59 10,
   Profil 2: Tuesday 07:02:59 10,
   Profil 3: Wednesday 07:02:59 10,
   Profil 4: Thursday 07:02:59 10,
   Profil 5: Friday 07:02:59 10,
   STATE      10
   STILLDONETIME 0
   TYPE       WeekdayTimer
   eventCount 9
   setModifier
   READINGS:
     2022-11-23 07:02:59   currValue       10
     2022-11-22 14:21:23   disabled        0
     2022-11-23 07:02:59   nextUpdate      2022-11-24 07:02:59
     2022-11-23 07:02:59   nextValue       10
     2022-11-23 07:02:59   state           10
     2022-11-22 14:21:23   weekdays        MO,TU,WE,TH,FR|{sunrise_abs("REAL",900,"07:30","07:03")}|10
   SWITCHINGTIMES:
     12345|{sunrise_abs("REAL",900,"07:30","07:03")}|10
   TIMER:
     wdt_uzsu_EG_EsseckeLinksBlind_0_midnight:
       HASH       wdt_uzsu_EG_EsseckeLinksBlind_0
       MODIFIER   midnight
       NAME       wdt_uzsu_EG_EsseckeLinksBlind_0_midnight
       SETTIMERATMIDNIGHT 1
   helper:
     daysRegExp (su|mo|tu|we|th|fr|sa|\$we|\!\$we)
     daysRegExpMessage (su|mo|tu|we|th|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
       1:
         07:02:59   10
       2:
         07:02:59   10
       3:
         07:02:59   10
       4:
         07:02:59   10
       5:
         07:02:59   10
       6:
     WEDAYS:
       3          1
       4          1
   profil:
     1:
       EPOCH      1669183379
       PARA       10
       TIME       {sunrise_abs("REAL",900,"07:30","07:03")}
       WE_Override 0
       DAYS:
         1
         2
         3
         4
         5
   profile_IDX:
     1:
       07:02:59   1
     2:
       07:02:59   1
     3:
       07:02:59   1
     4:
       07:02:59   1
     5:
       07:02:59   1
Attributes:
   commandTemplate set $NAME level $EVENT
   disable    0
   group      EG_EsseckeLinksBlind
   room       UZSU


Hier die Einstellung für einen plot.... das hat aber nix mit der UZSU zu tun, war das ein Tipp Fehler?

      "AussenTemperaturEingang_Plot" : {
         "interval" : "OnChange",
         "set" : null,
         "mode" : "raw",
         "updatemode" : "additional",
         "reading" : "T",
         "device" : "HausVorderseiteAussentemperatur",
         "end" : "0d",
         "converter" : "Plotfile FileLog_HausVorderseiteAussentemperatur 4",
         "datamode" : null,
         "type" : "plot",
         "start" : "3d"
      },


Ich muss erst wieder mein Testsystem zum laufen bringen, ich will mir nicht noch einmal meine Einstellungen der Rollladen abschießen.... leider ist meine "Banane" defekt, keine Ahnung was der fehlt  :-\ da muss ich auch mal wieder ran.
Wenn du noch etwas brauchst melde dich.
Gruß
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Johann.S

Hallo Michael,

??? ist ein Flüchtigkeitsfehler, ich meinte von deinem uzsu in fronthem und in smartVISU!

Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

Funsailor

Brauchst du noch mehr Infos?
Gruß Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Johann.S

#26
Hallo Michael,

hat etwas gedauert wegen ständigem BSOD!
Kannst du bei dir bitte mal die Änderung im Screenshot 1 durchführen (smartVISU)!
Als Ergebnis bekommst du den delayedExecutionCond (Screenshot 2/fhem).

Erklährung aus der commandoref:
Zitatcommand
    If no condition is set, all the rest is interpreted as a command. Perl-code is setting up by the well-known Block with {}.
    Note: if a command is defined only this command is executed. In case of executing a "set desired-temp" command, you must define the hole command part explicitly by yourself.
    If no explicit command is provided, commandTemplate attribute will indicate the command; this may be a simple set $NAME $EVENT or some variation wrt. to the device beeing recognized as heating type (see WDT_eventMap for even more options!). The following parameters are replaced:
        $NAME => the device to switch
        $EVENT => the new parameter (e.g. a temperature)

Da ich kein HM-Wired habe, kann ich es nicht Testen!

Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

Funsailor

Hallo Johann,
kann ich gerne nochmal probieren, aber mit welcher Version? Ich setzte zur Zeit die Standartumgebung ein.
Wie schön geschrieben ist mein Testaufbau im Moment leider nicht einsetzbar. Mal sehen was sich da machen lässt....
Ich hatte das schon ohne {} (so hatte das Raman in seinem Beitrag gezeigt) probiert, ging leider auch nicht.


Gruß
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Johann.S

Hallo Michael,

sollte in jeder Version funktionieren!
Bei mir erscheint automatisch der delayedExecutionCond und es wird dann nur der ausgeführt!
Die Klammern wurden automatisch hinzugefügt!
Ich habe nur in DelayedExec den String set $NAME level $EVENTeingefügt!

Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

Funsailor

#29
Hi,
endlich konnte ich (nach einigen Problemen) meine Testumgebung mit HMW Devices wieder in Betrieb nehmen.
Habe FHEM aktualisiert, dann die neuste SmartVISU Version (v3.3.1) installiert und meine "Page" auf das notwendigste reduziert. Hab nun nur noch einen Raum mit einem Rollo und der UZSU für dieses Device eingebaut.

Kann damit den "Rollo" bewegen und stoppen, alles funktioniert einwandfrei. Nur das "commandTemplate" wird nicht erzeugt.

Habe das mit dem Master - und Developbranch ausprobiert, immer das gleich.
Allerdings gibt es einen Unterschied, benutze ich den Master-Branch, werden die "wdt_uzsu_" (also die Schaltzeiten) angelegt, nutze ich den Develop-Branch werden die nicht angelegt. Vielleicht hilft der Hinweis weiter.

Edit1: Die Schaltzeiten werden nur hinzugefügt, wenn ich den Eintrag "set $NAME level $EVENT" oder "set level" weglasse, sobald ich in "Condition" einen String eintrage, werden die wdt_ --- Zeiten nicht eingetragen

Das hier ist die Meldung wenn ich die Develop-Branch nutze:

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 $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{ UZSU_execute($NAME, $EVTPART1) }: Can't use string ("{"active":true,"list":[{"time":""...) as a HASH ref while "strict refs" in use at ./FHEM/99_fronthemUtils.pm line 202.


Edit2: Ich habe das nochmals mit allen möglichen und unmöglichen Einstellungen in der UZSU ausprobiert, mit dem Develop-Branch werden überhaupt keine Schaltzeiten angelegt.  :-[

Bin für Fragen und Vorschläge offen....
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -