98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

Esjay

Setz mal folgendes:

attr <HueBridge> createGroupReadings 1

Damit werden die Gruppen zu "normalen" Devices gemacht.

Hier der Raw-Code

defmod HUEGroup1 HUEDevice group 1  IODev=Hue
attr HUEGroup1 userattr createActionReadings:1,0 createGroupReadings:1,0
attr HUEGroup1 IODev Hue
attr HUEGroup1 alias Wohnzimmergruppe
attr HUEGroup1 color-icons 2
attr HUEGroup1 delayedUpdate 1
attr HUEGroup1 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr HUEGroup1 group HUEGroup
attr HUEGroup1 icon logic
attr HUEGroup1 room Wohnzimmer,hidden
attr HUEGroup1 stateFormat {ReadingsVal("HUEGroup1","all_on","") eq "false"?"off":"on"}
attr HUEGroup1 userReadings state {ReadingsVal("HUEGroup1","all_on","") eq "false"?"off":"on"}

setstate HUEGroup1 on
setstate HUEGroup1 2018-09-28 20:29:49 alert nonuniform
setstate HUEGroup1 2018-09-28 20:29:04 all_on true
setstate HUEGroup1 2018-09-28 20:29:04 any_on true
setstate HUEGroup1 2018-09-28 20:29:49 bri 216
setstate HUEGroup1 2018-09-28 20:29:49 colormode ct
setstate HUEGroup1 2018-09-28 20:29:49 ct 406
setstate HUEGroup1 2018-09-28 20:29:49 effect none
setstate HUEGroup1 2018-09-28 20:29:49 onoff 1
setstate HUEGroup1 2018-09-28 20:29:49 pct 85
setstate HUEGroup1 2018-09-28 20:29:49 reachable 1
setstate HUEGroup1 2018-09-28 20:29:49 sat 170
setstate HUEGroup1 2018-09-28 21:04:12 state on


Byte09

Zitat von: Esjay am 28 September 2018, 21:07:05
Setz mal folgendes:

attr <HueBridge> createGroupReadings 1

Damit werden die Gruppen zu "normalen" Devices gemacht.

Hier der Raw-Code

defmod HUEGroup1 HUEDevice group 1  IODev=Hue
attr HUEGroup1 userattr createActionReadings:1,0 createGroupReadings:1,0
attr HUEGroup1 IODev Hue
attr HUEGroup1 alias Wohnzimmergruppe
attr HUEGroup1 color-icons 2
attr HUEGroup1 delayedUpdate 1
attr HUEGroup1 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr HUEGroup1 group HUEGroup
attr HUEGroup1 icon logic
attr HUEGroup1 room Wohnzimmer,hidden
attr HUEGroup1 stateFormat {ReadingsVal("HUEGroup1","all_on","") eq "false"?"off":"on"}
attr HUEGroup1 userReadings state {ReadingsVal("HUEGroup1","all_on","") eq "false"?"off":"on"}

setstate HUEGroup1 on
setstate HUEGroup1 2018-09-28 20:29:49 alert nonuniform
setstate HUEGroup1 2018-09-28 20:29:04 all_on true
setstate HUEGroup1 2018-09-28 20:29:04 any_on true
setstate HUEGroup1 2018-09-28 20:29:49 bri 216
setstate HUEGroup1 2018-09-28 20:29:49 colormode ct
setstate HUEGroup1 2018-09-28 20:29:49 ct 406
setstate HUEGroup1 2018-09-28 20:29:49 effect none
setstate HUEGroup1 2018-09-28 20:29:49 onoff 1
setstate HUEGroup1 2018-09-28 20:29:49 pct 85
setstate HUEGroup1 2018-09-28 20:29:49 reachable 1
setstate HUEGroup1 2018-09-28 20:29:49 sat 170
setstate HUEGroup1 2018-09-28 21:04:12 state on



ok, thx ... hab ich.

habe jetzt das config eingespielt, ohne fehler . gruppe lässt sich ansteuern über das mswitch. ich verstehe es gerade nicht.
frage mal ganz vorsichtig : kannst du es reproduzieren ?

gruss Byte09

Esjay

Gerade mal versucht zu reproduzieren. Klappt natürlich nicht  ;D

Kanns mir auch nicht erklären. Solange ich der einzige mit dem "Problem" bin, bzw. war, ist es wie es ist.

Zumindest haben deine Hue Gruppen jetzt das pct reading  ;D

Byte09

Zitat von: Esjay am 28 September 2018, 22:02:45
Gerade mal versucht zu reproduzieren. Klappt natürlich nicht  ;D

Kanns mir auch nicht erklären. Solange ich der einzige mit dem "Problem" bin, bzw. war, ist es wie es ist.

Zumindest haben deine Hue Gruppen jetzt das pct reading  ;D
Das heisst jetzt ging es ?

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Esjay

Jap ohne Probleme mehrmals hintereinander.

Grüße

Byte09

kommendes Update auf V2.01

- Fix: Rename
Fehler bei der Renamefunktion ( rename MSwitchname Mswitchnewname ) behoben

- Fix/new : Copy
copy MSwitchdevice1 Mswitchdevice2 ist nun möglich . Bisher wurde hier nur die leere 'Hülle' kopiert , mit der kommenden Version werden alle daten übernommen. Aus Sicherheitsgründen wird ein kopiertes Device standartmässig immer auf 'disable' gesetzt

- Fix Delays
unter ganz bestimmten Voraussetzungen konnte es hier zu einem Fehlverhalten kommen , das Fhem zum Asturz brachte.
Bezug: https://forum.fhem.de/index.php/topic,86199.msg840535.html#msg840535

gruss Byte09

Bäschdler

Hallo Byte,

ich möchte die Logbucheinträge im jeweiligen Logfile des Rolladen eintragen. Dafür habe ich jeweils weiteres Filelog definiert welches in das selbe File schribt wie das Rolladen-Modul dies tut.
Das würde ich auch gerne wieder so abbilden, denn dann steht bei dem Fahrbefehl eich ein Logbucheintrag weshalb der Rolladen da hin gefahren ist.

Dann hätte ich da noch § weitere Fragen:
- kann man innerhalb des MSwitch Moduls die (optische) Reihenfolge der Device Actions nachträglich noch ändern ?
- wäre es möglich eine "Überschrift" bzw. einen Kommentar bei dem jeweiligen Device Action-Block einzufügen (ich möchte mir da rein schreiben was die jeweilige Aktion macht)?
- kann man einen kompletten MSwitch irgendwie kopieren um quasi dieselbe Funktionalität unter einem anderen Namen und für ein anderes affected device zu bekommen?

Viele Grüsse
Bäschdler

Byte09

#472
Zitat von: Bäschdler am 30 September 2018, 17:07:37
Hallo Byte,

ich möchte die Logbucheinträge im jeweiligen Logfile des Rolladen eintragen. Dafür habe ich jeweils weiteres Filelog definiert welches in das selbe File schribt wie das Rolladen-Modul dies tut.
Das würde ich auch gerne wieder so abbilden, denn dann steht bei dem Fahrbefehl eich ein Logbucheintrag weshalb der Rolladen da hin gefahren ist.

Dann hätte ich da noch § weitere Fragen:
- kann man innerhalb des MSwitch Moduls die (optische) Reihenfolge der Device Actions nachträglich noch ändern ?
- wäre es möglich eine "Überschrift" bzw. einen Kommentar bei dem jeweiligen Device Action-Block einzufügen (ich möchte mir da rein schreiben was die jeweilige Aktion macht)?
- kann man einen kompletten MSwitch irgendwie kopieren um quasi dieselbe Funktionalität unter einem anderen Namen und für ein anderes affected device zu bekommen?

Viele Grüsse
Bäschdler

zu den logeinträgen . letztendlich sicher machbar, da müsstest du halt ein weiteres Freecmd definieren , welches den lofeintrag schreibt . formatierung muss ich mir nachher selber erstmal anschauen.

edit : schau mal hier -> https://forum.fhem.de/index.php/topic,69917.msg614675.html#msg614675 ... das als freecmd und es sollte gehen.

Zitat- kann man innerhalb des MSwitch Moduls die (optische) Reihenfolge der Device Actions nachträglich noch ändern ?

derzeit nicht , ist auch nicht wirklich sinnvoll , da es ja 'allgemein' gehalten sein müsste. wonach willst du da sortieren? es alphabetisch ( auch umgekehrt ) zu sortieren wäre kein problem , aber wird in aller regel ja nicht das sein , was gewünscht ist . Die reihenfolge des 'abarbeitens' kannst du mit 'priority' im expertenmodus bearbeiten .

Zitat- wäre es möglich eine "Überschrift" bzw. einen Kommentar bei dem jeweiligen Device Action-Block einzufügen (ich möchte mir da rein schreiben was die jeweilige Aktion macht)?

... mache ich mir mal einen kopf drüber , in aller regel ist aber jedes affected device ein einzeiler und somit recht durchschaubar .
bei gesetzten Freecmds ist es möglich kommentarzeilen einzusetzen ( # text ; ). ich bin mir nicht wirklich sicher, ob es sinnig ist  die resourcen hier weiter zu belasten ?! das du das attribut 'comment' nutzen kannst , in dieses auch als info angezeigt bekommmst , wenn du das attribut 'MSwitch-Inforoom' nutzt ist dir bewusst ?

edit:bin da gerade hin- und hergerissen , sollte das mehrheitlich für sinnvoll erachtet werden baue ich etwas ein.

Zitat- kann man einen kompletten MSwitch irgendwie kopieren um quasi dieselbe Funktionalität unter einem anderen Namen und für ein anderes affected device zu bekommen?

ein komplettes 'copy' ist ab der kommenden Version möglich , siehe einen post über deinem (https://forum.fhem.de/index.php/topic,86199.msg840923.html#msg840923). alternativ und im grunde nicht als 'öffentliche' Funktion vorgesehen:

wenn du in einem device auf getconfig gehst und in diesem configfile die folgende zeile einbaust

#Q <NAME_zu ersetzendes_device>#irgendein text zur beschreibung#device

wird beim einspielen des Files in ein anderes device eine Abfrage gestartet, gegen welches device das <NAME_zu ersetzendes_device> ersetzt werden soll . damit werden  auch alle abhängigkeiten (conditions die auf dieses gerät verweisten etc. pp.)  ersetzt . das funktionier aber nur für die affected devices, nicht für die triggernden. Geht aber auch für mehrere devices - eine Zeile pro device.

... aber wie gesagt , das ist eine Funktion , eigentlich für mich , um configfiles vernünftig weitergeben zu können .
nutze ich z.B hier:
https://forum.fhem.de/index.php/topic,86199.msg839234.html#msg839234

gruss Byte09

Bäschdler

Hallo,

Zitat
Zitat

    - kann man innerhalb des MSwitch Moduls die (optische) Reihenfolge der Device Actions nachträglich noch ändern ?


derzeit nicht , ist auch nicht wirklich sinnvoll , da es ja 'allgemein' gehalten sein müsste. wonach willst du da sortieren? es alphabetisch ( auch umgekehrt ) zu sortieren wäre kein problem , aber wird in aller regel ja nicht das sein , was gewünscht ist . Die reihenfolge des 'abarbeitens' kannst du mit 'priority' im expertenmodus bearbeiten .

Ich dachte daran, dass man (optional) die Reihenfolge manuell festlegen kann.

Beispiel:
Ich erstelle für das affected device "Rolladen1" eine 1. action "morgens auf 0%" und "abends mit 5 Minuten Verzögerung auf 100% wenn er auf 10% steht", dann eine 2. action "abends auf 10%".
Der Sinn dahinter ist, dass der Rolladen erst ein Stück runter fährt (als Vorwarnung) und erst dann komplett sofern er nicht manuell hoch gefahren wird.
Sind also schon mal 2 Aktionen für dasselbe Device. Wenn ich jetzt noch nach Wochentagen / Wochenende unterscheiden möchte bin ich bei 4 Aktionen. Dann noch Abschattung, also nochmal 2 dazu.
Diese Aktionen stehen dann in der Reihenfolge untereinander wie ich sie programmiert habe.
Wenn ich jetzt das mit dem Logfile als FreeCMD eintrage (habe ich eben gemacht und bin gespannt ob es so tut wie ich mir das vorstelle) habe ich nochmal weitere 6 Aktionen, auch diese in der Reihenfolge wie programmiert. Jeweils als Block von Fahrbefehlen und Logeinträgen.
ich würde jetzt gerne erst die Action "morgens auf 0%", "abends auf 100%" und danach die Action FreeCMD "logbuch bin auf 0% gefahren", "bin auf 100% gefahren" sehen bevor ich dann die "auf 10% fahren" und "logbuch bin auf 10% gefahren" sehe.

Ich hoffe ich konnte das verständlich ausdrücken ?!?

Wobei mir da gerade auf fällt, dass es natürlich auch äusserst cool wäre, wenn man ein cmd1a, cmd1b, ... für dieselbe condition und dasselbe für 2 natürlich auch eintragen könnte, da bei mir 2 - 3 mal dasselbe unter condition steht und ja quasi durch das selbe triggernde Ereignis mehrere Dinge ausgelöst werden.

Viele Grüsse
Bäschdler

Byte09

Moin,

Ich werde mit der Sortierung was machen .. ähnlich wie Priorität und id ... ich habe auch mswitch devices mit teilweise 25+ affected devices .... macht schon Sinn und geht mit ein paar Zeilen code. 

cmd1a,b etc. Ist nicht machbar ... dafür ist die Struktur des Moduls einfach nicht gemacht ... da müsste ich von Grund auf umbauen.

Gruss Byte09



Gesendet von meinem SM-G900F mit Tapatalk


Bäschdler

Hi,

ich habe jetzt einfach alle 3 Kommandos unter FreeCMD nacheinander und mit Semikolon getrennt eingetragen und habe damit genau das was ich mit cmd1a, cmd1b,... gemeint habe. Und da ich für das schreiben in's Lofgfile ja sowieso das FreeCMD brauche ist das eine für mich super Lösung.

Damit relativiert sich auch das mit der Sortierung, da ich ja jetzt alle Kommandos "beieinander" habe.

Danke und viele Grüsse
Bäschdler

Byte09

Zitat von: Bäschdler am 01 Oktober 2018, 17:18:30
Hi,

ich habe jetzt einfach alle 3 Kommandos unter FreeCMD nacheinander und mit Semikolon getrennt eingetragen und habe damit genau das was ich mit cmd1a, cmd1b,... gemeint habe. Und da ich für das schreiben in's Lofgfile ja sowieso das FreeCMD brauche ist das eine für mich super Lösung.

Damit relativiert sich auch das mit der Sortierung, da ich ja jetzt alle Kommandos "beieinander" habe.

Danke und viele Grüsse
Bäschdler

nun ist es mit dem nächsten update drinnen   ;)

gruss Byte09

Bäschdler

Super

Vielen Dank.


Ich habe gerade ein "komisches" Verhalten, bin mir aber auch nicht sicher ob es schon mal tat da ich gerade noch am rumprobieren bin.

Folgende Fehlermeldung bekomme ich wenn ich auf "check condition" gehe:
Zitat
eingehender String:
*{twilight("myLocation","sr_weather","04:00","09:30")}

If Anweisung Perl:


Syntaxfehler:
Can't use string ("07:05:52") as a symbol ref while "strict refs" in use at (eval 9010) line 1.

Dann habe ich das selbe mal mit dem Sunset probiert.
Manchmal kommt folgendes (auch bei twilight):
Zitat
eingehender String:*{sunset(0,"15:00","22:00")}If Anweisung Perl:if (ReadingsVal('myLocation', 'azimuth', 'undef')>100 && ReadingsVal('myLocation', 'azimuth', 'undef')<230 && ReadingsVal('OG_WZ_Roll_Balkon_Fahrbefehle', 'state', 'undef') eq "off"){$answer = 'true';} else {$answer = 'false';}
Syntaxfehler:Can't use string ("43:32:43") as a symbol ref while "strict refs" in use at (eval 9077) line 1. States der geprüften Readings:Reading: [OG_WZ_Roll_Balkon_Fahrbefehle:state] - Inhalt: offReading: [myLocation:azimuth] - Inhalt: 276.2Reading: [myLocation:azimuth] - Inhalt: 276.2

meistens kommt das:
Zitat
eingehender String:
*{sunset(0,"15:00","22:00")}

If Anweisung Perl:


Syntaxfehler:
Can't use string ("43:32:43") as a symbol ref while "strict refs" in use at (eval 9079) line 1.

Ich bin aber irgendwie der Meinung das hätte so (egal ob sunset oder twilight) schon getan.
Habe ich da was falsch gemacht?

Byte09

ok , thx für die info.

schaue ich mir an , komme aber erst morgen abend dazu.

gruss Byte09

Byte09

Zitat von: Bäschdler am 01 Oktober 2018, 20:04:57
Super

Vielen Dank.


Ich habe gerade ein "komisches" Verhalten, bin mir aber auch nicht sicher ob es schon mal tat da ich gerade noch am rumprobieren bin.

Folgende Fehlermeldung bekomme ich wenn ich auf "check condition" gehe:
Dann habe ich das selbe mal mit dem Sunset probiert.
Manchmal kommt folgendes (auch bei twilight):
meistens kommt das:
Ich bin aber irgendwie der Meinung das hätte so (egal ob sunset oder twilight) schon getan.
Habe ich da was falsch gemacht?

habe mir das gerade malangeschaut. die erkennung von sunset ist sehr kleinkariert in bezug auf die syntax ( incl. leerzeichen )  , das werde ich überarbeiten , aber es funktioniert.

in deinem obigen beispiel sieht es aber so aus, als hättest du nur einen zeitpunkt definiert ( oder da hat MSwitch etwas unterschlagen ), als condition wird aber immer ein zeitraum benötigt .

wenn ich z.B folgendes eingebe :
[{ sunset(0,"15:00","22:00") }-{ sunrise("+3600") }]

dann geht es  .

eingehender String:
[{ sunset(0,"15:00","22:00") }-{ sunrise("+3600") }]

If Anweisung Perl:
if ((1514831640 < 1514867940 && 1514867940 < 1514875920)){$answer = 'true';} else {$answer = 'false';}

If Anweisung Perl Klarzeiten:
if ((19:34 < 05:39 && 05:39 < 07:52)){$answer = 'true';} else {$answer = 'false';}

Bedingung ist Wahr und wird ausgeführt


.... oder reden wir jetzt aneinander vorbei ?

gruss BYte09