98_MSwitch - Support

Begonnen von Byte09, 25 März 2018, 12:19:58

Vorheriges Thema - Nächstes Thema

Byte09

Funktionsänderung mit kommendem Update auf V3.0.

nachdem ich heute eine erste ( teilweise ) funktionsfähige Modulversion incl. des angekündigten wizards in das GIT gestellt habe werde ich mich erstmal mit einer Funktionsänderung beschftigen, bevor ich mich weiter mit den angekündigten Erweiterungen beschäftige.

konkret geht es um die MSWitch_Extensions.

auszug Wiki:

MSwitch_Extensions (0:1)
Zitat
Es wird eine zusätzliche Schaltoption 'MSwitchToggle' in den Geräten angeboten. Diese kann genutzt werden, wenn zuschaltende Geräte eine Togglefunktion nicht von Haus aus anbieten.

Eine Angabe muss in folgendem Format gemacht werden:

    on/off/state/suchmuster1/suchmuster2, wobei die letzten drei Angaben optional sind.

Funktion: Bei Ausführung des Befehls wird das Gerät 'on' oder 'off' geschaltet (on/off), Voraussetzung ist, dass der 'state' dieses Gerätes auch den 'state on' oder 'off' annimmt. Sollte dieses nicht der Fall sein, so kann mit dem Feld 'state' angegeben werden, in welchem Reading der aktuelle Status vorkommt und wie dieser lautet (suchmuster1/suchmuster2). Dieses 'state' kann mehrere Angaben enthalten, das Vorkommen der Suchmuster ist aber Voraussetzung.

Nachdem ich heute in einem Thread über ein Thema gestolpert bin , bei dem ich versuchen wollte das mit MSwitch einfach umzusetzen musste ich feststellen, das diese Funktion dafür nicht ausgelegt ist ( und eine Umsetzung hier zwar machbar ist, aber deutlich aufwendiger ).

Insofern werde ich diese Funktion grundlegend ändern, so dass nicht (wie bisher) nur ein togglen von 2 Zuständen möglich ist , sondern durch beliebig viele Zustände geschaltet werden kann.

die neue Syntax wird dann wie folgt lauten :

[befehl1,befehl2,befehlx]:(optional)[suchmuster1,suchmuster2,suchmusterx]:(optional)[reading]

[befehl1,befehl2,befehlx] - die Befehle die in der Reihenfolge bei jeder awktivierung 'durchgeschaltet' werden

[suchmuster1,suchmuster2,suchmusterx] - bildet den zugehörigen status eines readings ab , falls unterschiedlich zum gesetzten Befehl und das schalten nicht den state eines devices betrifft ( setlist)

[reading] - Namedes Readings dessen Status betroffen ist.

zum einfachen togglen zwischen on und off würde hier folgende Angabe reichen :
[on,off]

Da ich davon ausgehe, das diese Funktion im Grunde nicht oder sehr selten genutzt wird werde ich hier keine automatischa Anpassung der alten Syntax vornehmen.d.H es wir ein manueller Eingriff erforderlich , falls diese Funktion eingesetzt ist.

Kommen wird diese Änderung mit der Versionsnummer 3.0 im SVN . Wird aber sicherlich noch ein paar Tage dauern.

gruss Byte09

MarkusHiba

Hallo Byte09,

gesundes Neues Jahr erstmal.

Ich habe mich nochmal mit der Brandmeldeanlage auf meinem Testsystem beschäftigt und hoffe du könntest mir helfen.
Ich habe im Anhang eine Word Datei wo ich mir Gedanken gemacht habe welche Voraussetzungen bzw. was für Ablauf die Brandmeldeanlage haben sollte.
Wie könnte ich das alles mit MSwitch umsetzen? Funktioniert das damit?

Vielleicht könnte man vieles einfacher machen.

Grüße MarkusHiba
Mit freundlichen Grüßen

MarkusHiba

Byte09

Zitat von: MarkusHiba am 05 Januar 2020, 01:21:31
Hallo Byte09,

gesundes Neues Jahr erstmal.

Ich habe mich nochmal mit der Brandmeldeanlage auf meinem Testsystem beschäftigt und hoffe du könntest mir helfen.
Ich habe im Anhang eine Word Datei wo ich mir Gedanken gemacht habe welche Voraussetzungen bzw. was für Ablauf die Brandmeldeanlage haben sollte.
Wie könnte ich das alles mit MSwitch umsetzen? Funktioniert das damit?

Vielleicht könnte man vieles einfacher machen.

Grüße MarkusHiba

Hi Markus,

habe es eben nur mal überflogen- müsste mich aber länger damit beschäftigen.

Ich fahre heute aber erstmal für 4 tage in den Kurzurlaub und komme erst am Mitwochj abend wieder.

Wenn ich wieder da bin können wir gerne danach schauen.

gruss Thomas

Tommy82

Hi,
ich habe heute folgende Meldung im Log nach einem Fhem Neustart:
2020.01.06 20:50:01.537 1: PERL WARNING: Useless use of concatenation (.) or string in void context at ./FHEM/98_MSwitch.pm line 5102, <$fh> line 3128.
2020.01.06 20:50:01.538 1: stacktrace:
2020.01.06 20:50:01.538 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (5102)
2020.01.06 20:50:01.539 1:     (eval)                              called by fhem.pl (2607)
2020.01.06 20:50:01.539 1:     (eval)                              called by fhem.pl (2606)
2020.01.06 20:50:01.539 1:     main::CommandReload                 called by fhem.pl (1998)
2020.01.06 20:50:01.540 1:     main::LoadModule                    called by fhem.pl (2055)
2020.01.06 20:50:01.540 1:     main::CommandDefine                 called by fhem.pl (1245)
2020.01.06 20:50:01.540 1:     main::AnalyzeCommand                called by fhem.pl (1098)
2020.01.06 20:50:01.540 1:     main::AnalyzeCommandChain           called by fhem.pl (1383)
2020.01.06 20:50:01.540 1:     main::CommandInclude                called by fhem.pl (609)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Byte09

hi,

schaue ich mir an, schaffe das aber erst am donnerstag.


gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk


Tommy82

Kein Problem, vielen Dank
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

hermann1514

Hi,
mal eine ganz andere Frage:

Wie ist es eigentlich mit der Systemlast wenn man viele "mSwitche" erstellt? Was ist denn so eine durchschnittliche Anzahl?
So wie ich gelesen habe, soll DOIF das System wohl mehr belasten - oder?

Gruß
Hermann


Byte09

Zitat von: hermann1514 am 09 Januar 2020, 12:56:41
Hi,
mal eine ganz andere Frage:

Wie ist es eigentlich mit der Systemlast wenn man viele "mSwitche" erstellt? Was ist denn so eine durchschnittliche Anzahl?
So wie ich gelesen habe, soll DOIF das System wohl mehr belasten - oder?

Gruß
Hermann

um ehrlich zu sein habe ich es nie in irgend einer art gemessen , da ich den Bedarf nicht wirklich sehe. Zeitkritische Anforderungen im zehntelsekundenbereich wird wohl kaum jemand nutzen .

Eine Vorfilterung , ob das Modul ( device ) überhaupt angesprochen wird findet ja bereitz durch die fhem.pl statt - hier wird das modul ja nur angesprochen , wenn eine Aktion durch MSwitch gefragt ist ( vorfilterung durch NOTIFYDEV) .

Im grossen und ganzen wird es wohl kein erheblichen Unterschied zwischen DOIF und MSwitch geben ( ungemessen ) .

in meinem Aktivsystem werkeln 122 Mswitch-Devices ( z.T. sehr komplex ) ... und ich habe keinerlei Systemlast -Probleme - auf Pi3

gruss Byte09

Panik

HalloByte09,

ich habe zwei Dinge, die Probleme beim Stringvergleich haben:

1.: Ich benutze das Modul daySchedule, um mit MSwitch tageszeitabhängige Dinge zu schalten.
Dort gibt es ein Reading Daytime. Es kann verschieden Zustände annehmen u.a. "Daytime:Früher Morgen" und "Daytime:Morgen"
Etliche Readings beinhalten Leerzeichen, die MSwitsh nicht richtig erkennt.
Weder die automatische Triggererkennung noch die manuelle können solche Readings mit Leerzeichen richtig aufbereiten.

2.: Beim Benutzen des echodevice-Moduls in MSwitch wollte ich eine Routine starten.
Der Schaltbefehl "routine_play" wird zwar angeboten, aber die Parameter dazu werden nicht genau so erkannt, wie es
das Modul selber tut. D.H. es fehlen 90% der Parameter in der DropDownList und die, die drin sind sind nicht vollständig.
Scheitert es da u.U. auch an der korrekten Erkennung?
In den Parametern kommen Sonderzeichen vor: @ . : _ -
Um überhaupt zu schalten muss ich FreeCMD benutzen und vor @ ein  \ setzen.

Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

Byte09

#969
Zitat von: Panik am 11 Januar 2020, 08:34:51
HalloByte09,

ich habe zwei Dinge, die Probleme beim Stringvergleich haben:

1.: Ich benutze das Modul daySchedule, um mit MSwitch tageszeitabhängige Dinge zu schalten.
Dort gibt es ein Reading Daytime. Es kann verschieden Zustände annehmen u.a. "Daytime:Früher Morgen" und "Daytime:Morgen"
Etliche Readings beinhalten Leerzeichen, die MSwitsh nicht richtig erkennt.
Weder die automatische Triggererkennung noch die manuelle können solche Readings mit Leerzeichen richtig aufbereiten.

2.: Beim Benutzen des echodevice-Moduls in MSwitch wollte ich eine Routine starten.
Der Schaltbefehl "routine_play" wird zwar angeboten, aber die Parameter dazu werden nicht genau so erkannt, wie es
das Modul selber tut. D.H. es fehlen 90% der Parameter in der DropDownList und die, die drin sind sind nicht vollständig.
Scheitert es da u.U. auch an der korrekten Erkennung?
In den Parametern kommen Sonderzeichen vor: @ . : _ -
Um überhaupt zu schalten muss ich FreeCMD benutzen und vor @ ein  \ setzen.

Hi Panik,

schaue ich mir beides an ,schaffe es aber wahrscheinlich erst morgen.

Ich habe beide Problene behoben ( hoffe ich ) und werde eine neue Testversion in das GIT stellen.
Diesen FIX kann ich nicht mehr in die aktuelle SVN Version einbringen , das ein Riesendurcheinander verursachen würde.
Insofern bitte heute abend ein update auf die GIT-Version machen , dann sollte es gehen


Gruss Thomas


Tommy82

#970
Hi,
ich habe grade diese Meldung im Log
2020.01.11 18:33:30.866 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 11315.
2020.01.11 18:33:30.867 1: stacktrace:
2020.01.11 18:33:30.867 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (11315)
2020.01.11 18:33:30.867 1:     main::MSwitch_sort                  called by ./FHEM/98_MSwitch.pm (4666)
2020.01.11 18:33:30.868 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:33:30.868 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:33:30.868 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:33:30.869 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:33:30.869 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:33:30.871 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 4977.
2020.01.11 18:33:30.872 1: stacktrace:
2020.01.11 18:33:30.872 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (4977)
2020.01.11 18:33:30.873 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:33:30.873 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:33:30.873 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:33:30.874 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:33:30.874 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:33:30.874 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 4977.
2020.01.11 18:38:14.104 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 4999.
2020.01.11 18:38:14.105 1: stacktrace:
2020.01.11 18:38:14.105 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (4999)
2020.01.11 18:38:14.105 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.106 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.106 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.107 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.107 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:38:14.107 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 4999.
2020.01.11 18:38:14.108 1: stacktrace:
2020.01.11 18:38:14.108 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (4999)
2020.01.11 18:38:14.109 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.109 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.110 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.110 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.110 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:38:14.111 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 5006.
2020.01.11 18:38:14.112 1: stacktrace:
2020.01.11 18:38:14.112 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (5006)
2020.01.11 18:38:14.112 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.113 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.113 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.114 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.114 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:38:14.115 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 5007.
2020.01.11 18:38:14.115 1: stacktrace:
2020.01.11 18:38:14.115 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (5007)
2020.01.11 18:38:14.116 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.116 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.117 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.117 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.118 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:38:14.119 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 5375.
2020.01.11 18:38:14.120 1: stacktrace:
2020.01.11 18:38:14.120 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (5364)
2020.01.11 18:38:14.121 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.122 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.122 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.122 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.123 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:38:14.123 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 5375.
2020.01.11 18:38:14.124 1: stacktrace:
2020.01.11 18:38:14.124 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (5364)
2020.01.11 18:38:14.125 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.125 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.125 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.126 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.126 1:     main::CallFn                        called by fhem.pl (756)
2020.01.11 18:38:14.141 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at ./FHEM/98_MSwitch.pm line 5478.
2020.01.11 18:38:14.142 1: stacktrace:
2020.01.11 18:38:14.142 1:     main::__ANON__                      called by ./FHEM/98_MSwitch.pm (5478)
2020.01.11 18:38:14.143 1:     main::MSwitch_fhemwebFn             called by ./FHEM/01_FHEMWEB.pm (1490)
2020.01.11 18:38:14.143 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1134)
2020.01.11 18:38:14.144 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (583)
2020.01.11 18:38:14.144 1:     main::FW_Read                       called by fhem.pl (3761)
2020.01.11 18:38:14.145 1:     main::CallFn                        called by fhem.pl (756)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Byte09

welche modulversion läuft bei dr ?

aus dem svn oder aus dem GIt?

gruss Thomas

Tommy82

Hi,
die Version 2.93 aus dem SVN
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Byte09

Zitat von: Tommy82 am 11 Januar 2020, 19:53:53
Hi,
die Version 2.93 aus dem SVN

ok , dann kann ich es mir erst morgen anschauen - sonst geht es hier bei mir durcheinander - habe auf meinem testsystem gerade die V3.0 beta und möchte das heute nicht mehr ändern.

gruss Byte09

Byte09

Zitat von: Tommy82 am 11 Januar 2020, 19:53:53
Hi,
die Version 2.93 aus dem SVN

habe mir das angeschaut, es handelt sich 'nur' um einen Log3 Aufruf, in dem es passieren kann, das eine Variable nicht definiert ist.

Verursacht zwr ( unter best. umständen ) eine Fehlermeldung , ist aber nicht kritisch - nur unschön.

Ich werde das in dieser Version nicht mehr korrigieren , in der kommenden Version ist es dann gefixed.

gruss Byte09