98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

ChrisW

Wie kann ich MSwitch mit allen Optionen wieder aus einem Backup einspielen ?
Habe den code auf der fhem.cfg genommen und den Ordner in FHEM/MSwitch  Scheint aber nicht zu klappen
Raspberry PI3 mit allem möglichen.

Byte09

Zitat von: ChrisW am 01 Februar 2019, 15:12:01
Wie kann ich MSwitch mit allen Optionen wieder aus einem Backup einspielen ?
Habe den code auf der fhem.cfg genommen und den Ordner in FHEM/MSwitch  Scheint aber nicht zu klappen

hi,

auszug aus dem wiki:
ZitatDas define eines MSwitch Devices generiert lediglich eine 'leere Hülle'. Alle relevante Einstellungen werden in Readings und/oder Hashes gespeichert. Daher stehen relevanten Daten nicht in der fhem.cfg! Vielmehr finden sich diese Daten in der Datei fhem.save (die Speicherung erfolgt durch den Befehl Fhemsave).

des beste ist grundsätzlich für mswitch devices ein seperates backup zu erstelln, geht in jedem mswitch mit:

set MSwitch_backup
Erstellt eine Backup-Datei aller MSwitch Devices unter ./fhem/MSwitch_backup.cfg.
Daten dieser Datei können im Bedarfsfall für einzelne oder gleichzeitig alle MSwitch Devices wieder zurück gespielt (hergestellt) werden
.

diese kann in jedem device dann wieder 'geladen' werden:
Zitatget restore_MSwitch_data [<this_device><all_devices>]

this_device - Stellt die Daten des Devices aus der Backupdatei wieder her, sofern diese in der Backupdatei gefunden werden (gesucht wird hier nach dem Namen des Devices).
all_devices - Stellt die Daten aller MSwitch Devices wieder her, sofern diese in der Backupdatei vorhanden sind. Diese Aktion kann einige Zeit in Anspruch nehmen und wird daher im Hintergrund (nonblocking) ausgeführt. Nach Beendigung erfolgt eine Benachrichtigung.

Die Devices sind nach einem Restore funktionsfähig. Empfohlen wird ein Neustart von FHEM.

gruss Byte09

Byte09

#632
Ich bin eben darauf aufmerksam gemacht worden , das es im Modul zu Fehlern kommt,wenn 'affected devices' einen "." im Namen haben . ( Nur unter bestimmten Voraussetzungen ).

Ich werde das Problem morgen beheben und einen entsprechenden Fix einchecken.

gruss Byte09

edit 9.8.19 06.50 : soeben eingechecked und mit dem Update ab 08.00 Uhr verfügbar.

Byte09

#633
mit morgigem Update gibt es ein neuer Reading 'last_activation_by'.
Dieses beinhaltet den letzten Auslöser des Mswitches und kann folgende Werte annehmen:

  • manuel - wenn manuell an/aus geschaltet wurde
  • event - wenn durch ein getriggertes Event ausgelöst wurde
  • timer - wenn zeitgesteuert ausgelöst wurde

da bei mir Mswitches schonsehr komplex sind und je nach Auslöser z.T unterschiedlich reagieren (müssen) brauchte ich diese Unterscheidungsmöglichkeit für den Eigengebrauch.

gruss Byte09

Byte09

#634
ich habe seit heutigem Fhemupdate das problem, das der Aufruf eines MSwitch-devices im Fhemweb ungewöhnlich lange dauert.

Bisher habe ich nur geschaut, ob es mit dem MSwitch-Update von heute morgen zusammenhängt, das kann ich aber ausschliessen.

Kann das ggf. jemand bestätigen  ?


gruss Byte09

det.

Ja, das ist so. Aber wegen befürchtetem shitstorm und meinem trotzdem hinreichend schnellem NUC habe ich mich zurückgehalten, aber wenn Du so konkret fragst.
LG
det.

Byte09

Wieso denn shitstorm ???  .... sicher nicht in diesem thread .

Dank dir für die Info.  Da muss ich morgen mal schauen.... habe einen Verdacht.

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Byte09

es liegt definitiv an der 'AttrTemplate.pm' vom 10.3.19.

keine Ahnung, was dort geändert wurde, zeigt aber wohl auch unschöne effekte in anderen Zusammenhängen.
ich werde erstmal abwarten , ob dort ggf. nochmal nachgebessert wird.

gruss Byte09

Byte09

#638
rudolf hat eben eine neue Version eingescheckt :
https://forum.fhem.de/index.php/topic,98465.msg918235.html#msg918235

ich habe diese eben probiert, damit scheint das Problem hier behoben mit (morgigem Update)

gruss Byte09

DeeSPe

Hier ein Minipatch um folgenden Warnungen abzustellen:
Zitat2019.03.28 11:19:21.425 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/(.*)({ <-- HERE  )(.*)(\$we)( })(.*)/ at ./FHEM/98_MSwitch.pm line 7062, <$fh> line 888.
2019.03.28 11:19:21.426 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/(.*)({ <-- HERE  )(sunset\([^}]*\)|sunrise\([^}]*\))( })(.*)/ at ./FHEM/98_MSwitch.pm line 7071, <$fh> line 888.


@@ -7059,7 +7059,7 @@
     }

     $x = 0;
-    while ( $condition =~ m/(.*)({ )(.*)(\$we)( })(.*)/ ) {
+    while ( $condition =~ m/(.*)(\{ )(.*)(\$we)( \})(.*)/ ) {
         last if $x > 20;        # notausstieg
         $condition = $1 . " " . $3 . $4 . " " . $6;
     }
@@ -7068,7 +7068,7 @@
     # ersetzte sunset sunrise
     $x = 0;    # notausstieg
     while (
-        $condition =~ m/(.*)({ )(sunset\([^}]*\)|sunrise\([^}]*\))( })(.*)/ )
+        $condition =~ m/(.*)(\{ )(sunset\([^\}]*\)|sunrise\([^\}]*\))( \})(.*)/ )
     {

         $x++;    # notausstieg


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Byte09

Schaue ich mir heute abend an. Thx

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Byte09

Zitat von: DeeSPe am 28 März 2019, 11:38:39
Hier ein Minipatch um folgenden Warnungen abzustellen:

@@ -7059,7 +7059,7 @@
     }

     $x = 0;
-    while ( $condition =~ m/(.*)({ )(.*)(\$we)( })(.*)/ ) {
+    while ( $condition =~ m/(.*)(\{ )(.*)(\$we)( \})(.*)/ ) {
         last if $x > 20;        # notausstieg
         $condition = $1 . " " . $3 . $4 . " " . $6;
     }
@@ -7068,7 +7068,7 @@
     # ersetzte sunset sunrise
     $x = 0;    # notausstieg
     while (
-        $condition =~ m/(.*)({ )(sunset\([^}]*\)|sunrise\([^}]*\))( })(.*)/ )
+        $condition =~ m/(.*)(\{ )(sunset\([^\}]*\)|sunrise\([^\}]*\))( \})(.*)/ )
     {

         $x++;    # notausstieg


Gruß
Dan

Hi Dan,

danke für den Patch , ist mir wohl 'durchgerutscht'. Habe es eben geändert und ist dann mit dem nächsten Update behoben.

gruss Thomas

Byte09

#642
in der derzeitigen Version  gibt es leider einen Fehler, der dafürsorgt, dass MSwitch-Devices die sich selber Triggern ( nur bei Triggerangabe MSwitch_Self - ist das Device mit echtem Namen angegeben gibt es dieses Problem nicht ) nach Fhemneustart solange nicht Funktioinieren , bis einmal 'modify-trigger' geklickt wird.

Der Effekt tritt daher auf, da bei Fhemstart hier das Internal 'NOTIFYDEV' des Devices falsch belegt wir.

Ich habe diesen Fehler eben behoben und der Patch ist mit morgigem Update verfügbar, wobei ich davon ausgehe, das sowieso die wenigsten User eine entsprechende Konfiguration im Einsatz haben.

gruss Byte09

Byte09

Ab der kommenden Modulversion werden von MSwitch-Devices gesetzte 'Delays' und 'Ats' grundsätzlich einen Fhemneustart überstehen ( das ist derzeit nicht der Fall ), ggf. per Attribut abschaltbar ... mal sehen.

Desweiteren werden diese gesetzten Verzögerungen auch einen Hard-Reset überstehen ( Stromausfall / Absturz etc. ). Dieses wird aber in jedem Fall per Attribut 'zugeschaltet' werden müssen, da diese Funktion eine gewisse Systemgrundlast erzeugen, sowie Daten auf sd-card (oder was auch immer) schreiben wird und das daher nur im Bedarfsfall als Option zur Verfügung stehen soll.

gruss Byte09

DeeSPe

Zitat von: Byte09 am 28 März 2019, 18:34:25
Hi Dan,

danke für den Patch , ist mir wohl 'durchgerutscht'. Habe es eben geändert und ist dann mit dem nächsten Update behoben.

gruss Thomas

Gerne.
Da ist noch was "durchgerutscht":
Zitat2019.04.04 12:01:22.362 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/(.*)({ <-- HERE  )(sunset\([^}]*\)|sunrise\([^}]*\))( })(.*)/ at ./FHEM/98_MSwitch.pm line 7095, <$fh> line 886.

Fix:
Code (Zeile 7095) Auswählen

    while ($condition =~ m/(.*)(\{ )(sunset\([^}]*\)|sunrise\([^}]*\))( \})(.*)/ )


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe