[gelöst] warning beim cmd "set pct" (dimmer)

Begonnen von frank, 22 Januar 2021, 11:10:51

Vorheriges Thema - Nächstes Thema

frank

hallo martin,

das cmd "set pct"
pct:(-value-|old) [(-ontime-|{})] [(-ramptime-|{})]

erzeugt immer eine warnung, wenn nicht alle 3 argumente benutzt werden.
jede nicht übergebene option erzeugt ein argument mit value="". daher sind auch 2 leerzeichen hinter "pct 17  " im log.
(in der aktuellen 10_cul_hm. pm ist das warning für zeile 9022)

2021.01.22 10:47:27.217 3: CUL_HM set DimUP01 pct 17 
2021.01.22 10:47:27.220 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 9011.
2021.01.22 10:47:27.221 1: stacktrace:
2021.01.22 10:47:27.221 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (9011)
2021.01.22 10:47:27.221 1:     main::CUL_HM_encodeTime16           called by ./FHEM/10_CUL_HM.pm (5413)
2021.01.22 10:47:27.222 1:     main::CUL_HM_Set                    called by fhem.pl (3812)
2021.01.22 10:47:27.222 1:     main::CallFn                        called by fhem.pl (1918)
2021.01.22 10:47:27.222 1:     main::DoSet                         called by fhem.pl (1950)
2021.01.22 10:47:27.223 1:     main::CommandSet                    called by fhem.pl (1250)
2021.01.22 10:47:27.223 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2717)
2021.01.22 10:47:27.223 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (945)
2021.01.22 10:47:27.224 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (593)
2021.01.22 10:47:27.224 1:     main::FW_Read                       called by fhem.pl (3817)
2021.01.22 10:47:27.224 1:     main::CallFn                        called by fhem.pl (758)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Rockojfonzo

Ich häng mich mal mutig hier dran: Seit letztem Update schalten meine Dimmer mehr von unterschiedlichen Prozentwerten anstelle von weichem Überblenden wie vorher.

Außerdem führt webCmd
on:off:30:70:up:down
bei Klick auf "30" zumindest zur gewünschten Beleuchtung,  "70" aber zu Unknown argument 70pct, choose one of raw off:noArg ....

Auch ein webCmd
on:off:30:70 0 5:up:down
hilft nicht. Laut Commandref soll "70 0 5" der Befehl sein, über "Kommandozeile" funktioniert "set Stehlampe pct 70 0 5".

Wie macht man es neuerdings richtig? shRamp[On|Off]Time muss ja immer mit eine peer angegeben werden, richtig?
FHEM auf Shuttle XS 35V2 mit CUL und HM-LGW
9 x HM-CC-RT-DN; 2 x HM-LC-SW4-DR; 3 x HM-WDS30-OT2-SM; 3 x HM-SEC-SD; 1 x HM-LC-Bl1PBU-FM; 1 x HM-LC-SW1-PL2;1 x HM-LC-SW1-FM; 2 x HM-SEC-SC-2

frank

#2
edit:
scheinbar kann webcmd nur 2 argumente pro cmd übergeben, wodurch aber die warnings im log auftauchen:
webCmd
on:off:pct 30:pct 70:up:down
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Rockojfonzo

Hi Frank, Dank für Dein Eindenken.

Mein Ziel war ja ein weiches Ein-/Über-/Ausblenden wie vor dem Update. Gibt es dazu eine Lösung?
FHEM auf Shuttle XS 35V2 mit CUL und HM-LGW
9 x HM-CC-RT-DN; 2 x HM-LC-SW4-DR; 3 x HM-WDS30-OT2-SM; 3 x HM-SEC-SD; 1 x HM-LC-Bl1PBU-FM; 1 x HM-LC-SW1-PL2;1 x HM-LC-SW1-FM; 2 x HM-SEC-SC-2

martinp876

nun, da es das Web-Interface kann ich es nicht ändern - unklar was es bedeuted.

Aber es gibt immer einen Weg, nur etwas umständlicher.
Ein Weg ist, einen virtuelen Button zu peeren - irgend einen.
Dann definierts du, was passieren soll, wenn der Button gedrückt wird - also das Dimmen,...
im WebCmd baust du dann ein pressS <button> ein.
So du noch kein Virtuelles Device hast oder ein neues willst könnte es so aussehen:

define vrtBtnDev CUL_HM C0FFEE
set vrtBtnDev virtual 1
set vrtBtnDev_Btn1  peerSmart DimUP01
attr DimUP01 webCmd on:off:30:pressS vrtBtnDev_Btn1:up:down

und dann das Peering von DimUP01<->vrtBtnDev_Btn1 auf der DimUP01 seite setzen. Für mich natütlich mit Templates:

set hm templateDef DimUp onLevel:rampTime:onTime "ramp up soft" OffDlyStep:5 DimJtRampOff:dlyOn RampSstep:5 OffDly:0 DimMaxLvl:p0 DimJtDlyOn:rampOn DimJtOn:rampOn OffDlyBlink:on OffTimeMode:absolut OffLevel:0 DimMinLvl:0 RampOffTime:p1 OffDlyOldTime:0.4 DimJtDlyOff:rampOn OnLvlPrio:high OnMinLevel:10 OffTime:unused OnLevel:p0 RampOnTime:p1 DimJtOff:rampOn OnTime:p2 OnTimeMode:absolut DimStep:5 OffDlyNewTime:0.4 OnDly:0 DimJtRampOn:on OnDlyMode:NoChange ActionTypeDim:jmpToTarget

set DimUP01 tplSet_DimUp_short

Das Template erlaubt das setzen von onLevel, onTime und rampTime. Also
set DimUP01 tplParaxxx_vrtBtnDev_Btn1_DimUpshort_onLevel 80
set DimUP01 tplParaxxx_vrtBtnDev_Btn1_DimUpshort_onTime  3600
set DimUP01 tplParaxxx_vrtBtnDev_Btn1_DimUpshort_onTime  40

frank

das warning ist auch mit heutigem update vorhanden.

Zitat2021.01.31 14:39:30.131 3: CUL_HM set DimUP01 pct 17 
2021.01.31 14:39:30.133 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 9022.
2021.01.31 14:39:30.133 1: stacktrace:
2021.01.31 14:39:30.134 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (9022)
2021.01.31 14:39:30.135 1:     main::CUL_HM_encodeTime16           called by ./FHEM/10_CUL_HM.pm (5412)
2021.01.31 14:39:30.135 1:     main::CUL_HM_Set                    called by fhem.pl (3812)
2021.01.31 14:39:30.136 1:     main::CallFn                        called by fhem.pl (1918)
2021.01.31 14:39:30.136 1:     main::DoSet                         called by fhem.pl (1950)
2021.01.31 14:39:30.138 1:     main::CommandSet                    called by fhem.pl (1250)
2021.01.31 14:39:30.139 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2717)
2021.01.31 14:39:30.140 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (945)
2021.01.31 14:39:30.140 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (593)
2021.01.31 14:39:30.141 1:     main::FW_Read                       called by fhem.pl (3817)
2021.01.31 14:39:30.141 1:     main::CallFn                        called by fhem.pl (758)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Rockojfonzo

Lieber Martin, vielen Dank für Deine Erklärungen. Ich scheitere schon bei peerSmart, aber dafür mache ich mal lieber einen anderen Fred auf.

Mir fehlt bei der vButton-Variante noch die Vorstellungskraft, wie das alles schön im Zusammenspiel mit den unterschiedlichen "Bedienoberflächen" (Web, FHEM Widgets auf iPhone, Alexa...) funktionieren kann.
"Früher" konnte man sowas wie RampOn und RampOff ja "einfach" über den LAN-Adapter und die doofe Windows-Konfiguration-Software im Device hinterlegen. Das fand ich eigentlich schon recht praktisch...
Mir ist schleierhaft, wieso das nun nicht mehr funktioniert, da mein Verständnis war, dass dieses Verhalten im Device gespeichert war.

Zitat von: martinp876 am 30 Januar 2021, 17:20:10
nun, da es das Web-Interface kann ich es nicht ändern - unklar was es bedeuted.

Aber es gibt immer einen Weg, nur etwas umständlicher.
Ein Weg ist, einen virtuelen Button zu peeren - irgend einen.
FHEM auf Shuttle XS 35V2 mit CUL und HM-LGW
9 x HM-CC-RT-DN; 2 x HM-LC-SW4-DR; 3 x HM-WDS30-OT2-SM; 3 x HM-SEC-SD; 1 x HM-LC-Bl1PBU-FM; 1 x HM-LC-SW1-PL2;1 x HM-LC-SW1-FM; 2 x HM-SEC-SC-2

roland-l

Hallo Martin,
Den Befehl für PTC in meinen DOIF und notify zu ändern ist ja möglich.
Aber was muss ich ändern damit ich die Warnung nicht mehr habe, wenn ich den Slider im Web Interfache benutze?
Muss ich den Entwickler vom Webinterfache bitten die hinterlegten befehle für den Slider von PTC anzupassen. Oder kann ich das selber.
Gruß Roland

frank

hallo martin,

aktueller überblick:

- das cmd set pct (dimmer) wirft immer ein warning, wenn die option ramptime fehlt
- wenn die warning existiert, wird die default ramptime fälschlicher weise auf "0000" gesetzt.

2021.02.23 13:37:17.733 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 9027.
2021.02.23 13:37:17.734 1: stacktrace:
2021.02.23 13:37:17.735 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (9027)
2021.02.23 13:37:17.735 1:     main::CUL_HM_encodeTime16           called by ./FHEM/10_CUL_HM.pm (5409)
2021.02.23 13:37:17.736 1:     main::CUL_HM_Set                    called by fhem.pl (3812)
2021.02.23 13:37:17.737 1:     main::CallFn                        called by fhem.pl (1918)
2021.02.23 13:37:17.737 1:     main::DoSet                         called by fhem.pl (1950)
2021.02.23 13:37:17.737 1:     main::CommandSet                    called by fhem.pl (1250)
2021.02.23 13:37:17.738 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2717)
2021.02.23 13:37:17.738 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (945)
2021.02.23 13:37:17.739 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (593)
2021.02.23 13:37:17.739 1:     main::FW_Read                       called by fhem.pl (3817)
2021.02.23 13:37:17.739 1:     main::CallFn                        called by fhem.pl (758)




mit dieser änderung der zeile 5409 kommt wieder die default ramptime "0320" und die warning ist weg:

      #$rval = CUL_HM_encodeTime16((@a > 4)?$a[4]:2.5);# rampTime 0.0..85825945.6, 0=immediate
      $rval = CUL_HM_encodeTime16(($a[4])?$a[4]:2.5);# rampTime 0.0..85825945.6, 0=immediate



2021.02.23 18:31:50.686 3 : CUL_HM set DimUP01 pct 20 
2021.02.23 18:31:50.753 0 : HMLAN_Send:  hmlan1 S:SCFF27BD6 stat:  00 t:00000000 d:01 r:CFF27BD6 m:EA A011 1ACE1F 1F64D8 0201280320FFFF
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

danke für den Hinweis. 3 Änderungen
1) die Abfrage in Zeile 9028 hatte die falsche reihenfolge => der Fehler wird nun unterdrückt.
2) Die Abfrage nach der Anzahl der Eingabeparameter ist nicht mehr notwendig. => defaults werden hier  nicht mehr benötigt
3) das Kommando Pct ist mit defaults ausgestattet (HMConfig) welche der User mt get cmdList sehen kann (so soll es sein).

Die default-Ramptime habe ich auf 2.4sec gesetzt - jetzt sichtbar.

noansi

Hallo Martin,

ZitatDie default-Ramptime habe ich auf 2.4sec gesetzt - jetzt sichtbar.
Nicht wahnsinnig problematisch, aber dann wäre es konsequent, die Commandref auch noch von 2.5s auf 2.4s anzugleichen.

Gruß, Ansgar.