98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

Torsten_MG

Liegt wahrscheinlich daran, dass ich heute eine ziemlich lange Leitung habe. Dazu kommt, dass ich noch Anfänger bin und noch nicht den Durchblick habe.

mark79

Hallo Thomas und Prost, :)

die Neuerungen hören sich toll an und so was habe ich noch vermisst, sofern ich das richtig verstehe...

Das heißt also, das es mit der V1.43 und dem neuen MSwitch_Mode: 'Toggle' es dann Möglich ist, auf ein Event zu triggern und zugleich könnte man das Device auch im Webinterface schalten?
In beiden fällen, würde sich dann auch der State des MSwitch Device mit ändern? Das wäre super und dadurch könnte man sich auch die notifys und DOIFs sparen...


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Byte09

Auf den Punkt gebracht ;-)

Gruss Thomas

Gesendet von meinem SM-G900F mit Tapatalk


andies

So, hier kommen mal meine ersten Gehversuche mit Hilfe. Du musst, Thomas, den Text in dem Codeblock einfach nach der 1 am (derzeitigen) Ende des Modulfiles hinzufügen. Danach erscheinen ein paar Dinge, die auch im Wiki und so stehen, unter "device specific help". Englisch schaffe ich momentan nicht, vielleicht ist einer schneller.



=pod
=item device
=item summary    controls several devices using a trigger device
=item summary_DE kontrolliert mehrere Geraete mit Hilfe eines Trigger-Geraetes
=begin html
=end html
=begin html_DE

<!-- ================================ -->
<a name="MSwitch"></a>
<h3>MSwitch</h3>

<ul>MSwitch ist ein Hilfsmodul. Es erlaubt das gleichzeitige Schalten von mehreren devices. Weitere Abhängigkeiten und Bedingungen wie ereignisgesteuertes und/oder zeitgesteuertes Schalten einzelner devices sind einstellbar.<br>

Das 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).

<br><br>

<b>Vorbereitungen</b> <br><br>
Um das Modul zu nutzen, muss man sich zuerst drei Dinge überlegen:
<ol>
<li>Welches Gerät soll auslösen? Dies ist der Trigger. Ein Trigger muss on- und off-Befehle haben.</li>
<li>Wenn der Trigger ausgelöst hast, welche nachfolgenden Geräte sollen dann geschaltet werden? Dabei unterscheidet das Modul zwischen den Geräten, die bei einem on-Befehl (auch 'on-Zweig'), und den Geräten, die bei einem off-Befehl (auch 'off-Zweig') ausgelöst werden.</li>
<li> Welche weiteren Bedingungen sollen für die Geräte, die im on- bzw off-Zweig liegen, noch gelten? Hier sind ereignisgesteuerte woe auch zeitgesteuerte Bedingungen möglich.</li>
</ol>
<br><br>
<b>Define</b>
  <ul>
    <br>

    <code>define &lt;name&gt; MSwitch</code>
    <br><br>
    <code>&lt;name&gt;</code> ist Name des Moduls. Es sind weder Trigger noch Geräte in den Zweigen definiert, dies geschieht durch die Weboberfläche.<br>
<br><br>
</ul>

  <b>Set</b>
    <br><br>
   <ul>
     <b>on/off</b>     
     <ul><code>set &lt;name&gt; on/off
      </code><br>
Schaltet das Gerät on bzw off und löst damit diejenigen Geräte aus, die sich im on- bzw off-Zweig befinden.</ul>
   </ul>
   <ul>
     <b> MSwitch_backup</b>     
     <ul><code>set &lt;name&gt; MSwitch_backup
      </code><br>
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. </ul>

    <b>Get</b>
    <br><br>
   <ul>
     <b>show_timer</b>
     <ul><code>get &lt;name&gt; show_timer
      </code><br>
      Zeigt alle anstehenden (gesetzten) Timer des Devices, die aus zeitabhängigen oder verzögerten Schaltbefehlen resultieren.
     </ul>
</ul>
   <ul>
     <b>delete_timer</b>
     <ul><code>get &lt;name&gt; delete_timer
      </code><br>
  Löscht alle anstehenden (gesetzten) Timer des Devices, die aus zeitabhängigen oder verzögerten Schaltbefehlen resultieren. Schaltbefehle, basierend auf rein zeitabhängigen Angaben, werden neu berechnet und gesetzt.
</ul>
     </ul>
</ul>

<b>Attribute</b>
    <br><br>
   <ul>

     <b>MSwitch_Help (0:1)</b>   
     <ul><code>attr &lt;name&gt; MSwitch_Help 1
   </code><br>
Schaltet Hilfebuttons zu den einzelnen Eingabefeldern an oder aus.<br><br>
     </ul>

     <b>MSwitch_Debug (0:1:2)</b>   
     <ul><code>attr &lt;name&gt; MSwitch_Debug 1
   </code><br>
0 - Abgeschaltet<br>
1 - Schaltet Felder zum testen der Conditionstrings etc. an<br>
2 - erweiterte Debugfunktion (nur für Entwicklung)<br><br>
     </ul>

     <b>MSwitch_Expert (0:1)</b>   
     <ul><code>attr &lt;name&gt; MSwitch_Expert 1
   </code><br>
In der Liste der möglichen Trigger erscheint das Selectfeld 'GLOBAL'. Dieses ermöglicht das Setzen eines Triggers auf alle Events und damit nicht nur auf einzelne Devices. In einem weiteren Feld kann eine weitere Selektion der triggernden Events erfolgen.<br><br>
     </ul>

     <b>MSwitch_Delete_Delays (0:1)</b>   
     <ul><code>attr &lt;name&gt; MSwitch_Delete_Delays 1
   </code><br>
Bewirkt das Löschen aller anstehende Timer (Delays) bei dem Auftreten eines erneuten, passenden Events. Bei der Option '0' bleiben bereits gesetzte Delays aus einem vorherigen, getriggertem Event erhalten und werden ausgeführt.<br><br>
     </ul>

     <b>MSwitch_Include_Devicecmds (0:1)</b>   
     <ul><code>attr &lt;name&gt; MSwitch_Include_Devicecmds 1
   </code><br>
Bewirkt die Aufnahme aller Devices in die Auswahlliste 'Affected Devices', die einen eigenen Befehlssatz liefern (bei Abfrage set DEVICE ?). Bei gesetzter Option (0) werden diese Devices nicht mehr berücksichtigt und somit nicht mehr angeboten.<br><br>
     </ul>

     </ul>


<!-- ================================ -->
=end html_DE
=cut
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

det.

Hallo Thomas und @all,
Erst mal ist Pfingsten und die Dixielandmeile und Biergärten stehen im Vordergrund.


Das Modul läuft seit einiger Zeit bei mir prima. Nur wächst langsam die Sorge, dass durch immer neue Ideen einzelner User, die Thomas vorbildlich und schnell einbaut und umsetzt, sich das Konstrukt in eine Eierlegendewollmilchsau verwandelt. So was hat Damian mit DOIF leider inzwischen auch geschafft.
Wenn man dann zur (optimal auf die Aufgabenstellung abgestimmten) Konfiguration  einer einzelnen Instanz ein FHEM spezifisches Informatik Studium braucht, wird das Ganze wieder irgendwie Sinnlos und man kommt mit at und notify letztendlich einfacher, intuitiver und schneller zum Ziel.


Meine Message - bitte treibt den Entwickler nicht vor Euch her - Thomas macht das schon!

LG
det.

mark79

#95
Zitat von: Torsten_MG am 19 Mai 2018, 21:08:58
Liegt wahrscheinlich daran, dass ich heute eine ziemlich lange Leitung habe. Dazu kommt, dass ich noch Anfänger bin und noch nicht den Durchblick habe.

Du hast schon sehr viele Devices und mit den Triggern bei MSwitch, bin ich selber noch ein Newbie.  :-\

Ich würde dir erstmal empfehlen, es nur mit einem trigger Device umzusetzen, um das Modul zu verstehen.

Wichtig ist dort das "Save incomming events" an zu haken und mit "modify" zu bestätigen. Das braucht man aber nur zu machen, wenn man nur ein Trigger Device hat.

Danach das zu triggernde Device (z.B. HM-PB-2-WM55) betätigen und nun kannst du das Event bzw. den State des Devices unter "trigger details" in der Dropdown-Liste auswählen. Jeweils bei on & off und auch wieder mit modify bestätigen..

Bei affected devices muss dann noch das zu schaltende Device hinzugefügt werden. Wie z.B. HM-LC-DIM1T-FM (Flur_Lampe).

Unten bei "device actions" (HM-LC-DIM1T-FM) kannst du dann bei "MSwitch on cmd: Set" auswählen was bei on/off passieren soll. Also Lampe on und off schalten.

Bei mehreren trigger Devices müsstes du meiner Meinung nach, das oberste "Trigger device" auf GLOBAL setzen und bei "switch MSwitch on + execute 'on' commands at" die zu triggernde Geräte rein schreiben. Das selbe bei "switch MSwitch off...".
Bei affected devices das zu schaltene Device hinzufügen. Aber ab dort bin ich auch raus... weil ich das selber noch nicht mit so vielen trigger Devices umgesetzt habe.


Viele Grüße
Mark


Zitat von: Byte09 am 19 Mai 2018, 21:15:09
Auf den Punkt gebracht ;-)

Gruss Thomas
Darauf bin ich schon gespannt, werde dann noch so einige Devices ersetzen. :)
Danke dir schon mal, das du das doch umgesetzt hast! :)

Zitat von: andies am 19 Mai 2018, 21:07:09
Kannst du wenigstens sagen, wieso? Sonst hole ich mir auch ein Bier ;-)
Ein Bier geht um diese Uhrzeit doch immer... Prost ;D
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Torsten_MG

Zitat von: mark79 am 19 Mai 2018, 21:55:26
...
Ich würde dir erstmal empfehlen, es nur mit einem trigger Device umzusetzen, um das Modul zu verstehen.

Wichtig ist dort das "Save incomming events" an zu haken und mit "modify" zu bestätigen. Das braucht man aber nur zu machen, wenn man nur ein Trigger Device hat.

Danach das zu triggernde Device (z.B. HM-PB-2-WM55) betätigen und nun kannst du das Event bzw. den State des Devices unter "trigger details" in der Dropdown-Liste auswählen. Jeweils bei on & off und auch wieder mit modify bestätigen..

...
Da fangen meine Probleme schon an, siehe Fotos. Anscheinend habe ich was falsch eingetragen

Byte09

Zitat von: det. am 19 Mai 2018, 21:55:00
Hallo Thomas und @all,
Erst mal ist Pfingsten und die Dixielandmeile und Biergärten stehen im Vordergrund.


Das Modul läuft seit einiger Zeit bei mir prima. Nur wächst langsam die Sorge, dass durch immer neue Ideen einzelner User, die Thomas vorbildlich und schnell einbaut und umsetzt, sich das Konstrukt in eine Eierlegendewollmilchsau verwandelt. So was hat Damian mit DOIF leider inzwischen auch geschafft.
Wenn man dann zur (optimal auf die Aufgabenstellung abgestimmten) Konfiguration  einer einzelnen Instanz ein FHEM spezifisches Informatik Studium braucht, wird das Ganze wieder irgendwie Sinnlos und man kommt mit at und notify letztendlich einfacher, intuitiver und schneller zum Ziel.


Meine Message - bitte treibt den Entwickler nicht vor Euch her - Thomas macht das schon!
Diese sorge hatte ich auch schon selber , aber alle Funktionen die in letzter zeit gekommen sind oder kommen weden entweder durch attr zugeschaltet z.b expertmode oder sind im Grunde nicht sichtbar , wenn man sie nicht weiss. Insofern wird sich das 'sichtbare ' grundmodul in der grundkonfiguratin nicht mehr ändern ( Änderung der delays ausgenommen ;-) )

Gruss Thomss

Gesendet von meinem SM-G900F mit Tapatalk


Byte09

Das event ist im normalmode nur zweistellig , also state.*  ... nicht *.state.*

Einfacher ist es wenn du die event speichern lässt.

Gruss Byte09
Zitat von: Torsten_MG am 19 Mai 2018, 22:06:35
Da fangen meine Probleme schon an, siehe Fotos. Anscheinend habe ich was falsch eingetragen

Gesendet von meinem SM-G900F mit Tapatalk


Torsten_MG

Zitat von: Byte09 am 19 Mai 2018, 22:12:32
Das event ist im normalmode nur zweistellig , also state.*  ... nicht *.state.*

Einfacher ist es wenn du die event speichern lässt.

Gruss Byte09
Gesendet von meinem SM-G900F mit Tapatalk

im dropdown wird mir nur *.state.* und no_trigger angeboten

Byte09

Markiert mal 'Save incommig events'  und bestätige das mit modify.  Dann scalte mal alle Optionen des zu triggernden devices durch. Danach das mswitch Device aktualisieren . Dann sollten alle aufgetretenen events in der liste sein.

Gruss byte09

Gesendet von meinem SM-G900F mit Tapatalk


Torsten_MG

Zitat von: Byte09 am 19 Mai 2018, 22:17:39
Markiert mal 'Save incommig events'  und bestätige das mit modify.  Dann scalte mal alle Optionen des zu triggernden devices durch. Danach das mswitch Device aktualisieren . Dann sollten alle aufgetretenen events in der liste sein.

Gruss byte09

Gesendet von meinem SM-G900F mit Tapatalk

Habe es mehrfach versucht mit modify, werden immer nur die beiden möglichkeiten angezeigt

Torsten_MG

Verschieben wir das auf morgen, möchte dich nicht von deinem Bier abhalten  ;)

Byte09

Top , so machen wirres ;-)

Gruss Thomas

Gesendet von meinem SM-G900F mit Tapatalk


mark79

Zitat von: Torsten_MG am 19 Mai 2018, 22:22:38
Habe es mehrfach versucht mit modify, werden immer nur die beiden möglichkeiten angezeigt

Ich habe ein Bespiel Device angelegt. Siehe Screenshot.

Das ist ein Xiaomi Funk Taster der mehrere Events produziert: "click" und "double_click"
2018-05-19 22:40:59 XiaomiSmartHome_Device Xiaomi_Taster click
2018-05-19 22:43:14 XiaomiSmartHome_Device Xiaomi_Taster double_click

Um die aufzunehmen muss man "Save incomming events" anhaken und einmal in dem Bereich (trigger details) auf modify klicken.
Danach den Taster bedienen und dann die Fhem Seite im Browser mit der F5 Taste neu laden, dann solltest du die Events wie im Sceenshot zu sehen ist auswählen können.

Weiter unten habe ich ein WZ_Lichtschalter Device mit dem Xiaomi_Taster verknüpft, das schaltet dann einfach das Wohnzimmer Licht mit "click" und double_click" an und aus.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten