Brauche Hilfe für userReadings im S7_Dwrite Modul

Begonnen von wladiM, 17 November 2017, 17:22:11

Vorheriges Thema - Nächstes Thema

wladiM

ich bin schon etwas am Verzweifeln. Ich möchte ein zweites Reading in einem Device erstellen, welches mir den Status "state" eines anderen Devices wiedergibt.
define WZ_Lampe_Mitte S7_DRead Q2
attr WZ_Lampe_Mitte IODev LogoLicht
attr WZ_Lampe_Mitte alias WZ_Lampe_Innen
define WZ_Licht_Mitte S7_DWrite NI1
attr WZ_Licht_Mitte IODev LogoLicht
attr WZ_Licht_Mitte alias WZ_Taster_Innen

Der Status vom Q2 soll als zweites Reading im NI1 angezeigt werden.
Zu dem System selbs. Ich benutze mehrere Siemens LOGO 0BA8 für die Lichtsteuerung und auch für die Rollos. Es lässt sich alles super ins FHEM System einbinden. Allerdings gibt es einen Nachteil, dass ich den "get" und "set" in zwei Devices habe. Sprich einen Taster als "set" und einen Lampe als "get" Es wird dann mit der Zeit ziemlich unübersichtlich auch im Tablet-UI. Dort lese ich den Taster mit einem PUSH ein und den Lampenstatus gebe ich mit einem SYMBOL zurück. Da ich aus der Siemens S7 Welt komme und meine Pearl Kenntnisse noch ziemlich in den Kinderschuhen stecken, habe ich zwar eine Idee im Kopf wie ich es in der S7 lösen könnte aber es nicht auf Pearl übertragen kann.
Darum ist die Frage in die Runge ob jemand mir einen Denkanstoß geben kann, wie ich es bewerkstelligen kann.

Ich habe auch schon mit dem Gedanken gespielt das Push Widget so zu verändern dass mit ein anderes Device den Status zurück schreibt.  Aber auch hier bin ich bis jetzt nicht weiter gekommen.   

Bin für jede Lösung oder Ansatz dankbar.

Gruß
Wladi

Starkstrombastler

In meiner Installation mit Logo! 0BA7 benutze ich readingsProxy für die Benutzeroberfläche (Floorplan):

define Ventilator readingsProxy P_Vent
attr Ventilator devStateIcon off:vent_ventilation@black:on on:vent_ventilation_level_3@blue:off
attr Ventilator fp_0_KG 429,989,0,,
attr Ventilator fp_Technik 317,1048,1,Vent,
attr Ventilator room LogoP
attr Ventilator setFn {($CMD eq "on")?fhem("set P_Vent.Set trigger"):fhem("set P_Vent.Off trigger")}
attr Ventilator setList on off

Die Kommunikation mit der Logo! mit Read und Write passiert im Hintergrund.
Zur eindeutigen Bedienung benutze ich getrennte Befehle für Ein und Aus:

define P_Vent S7_DRead Q1
attr P_Vent IODev LogoP
attr P_Vent devStateIcon off:vent_ventilation_level_0 on:vent_ventilation_level_3
attr P_Vent group Vent
attr P_Vent room LogoP

define P_Vent.Off S7_DWrite DB 0 1.1
attr P_Vent.Off IODev LogoP
attr P_Vent.Off devStateIcon off:rc_0@blue:trigger trigger:rc_1@red on:rc_1@red
attr P_Vent.Off group Vent
attr P_Vent.Off room LogoP

define P_Vent.Set S7_DWrite DB 0 1.0
attr P_Vent.Set IODev LogoP
attr P_Vent.Set devStateIcon off:rc_0@blue:trigger trigger:rc_1@red on:rc_1@red
attr P_Vent.Set group Vent
attr P_Vent.Set room LogoP

Das Ganze ist zwar etwas aufwändig, funktioniert aber. 
Taster liegen direkt an der Logo! an - damit funktioniert die Steuerung auch ohne Fhem zuverlässig.
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

wladiM

 :D :D :D :D :D JAAA
Genau danach habe ich gesucht. Das ist die Lösung für Mich.
Vielen Dank.
define Ku_Beleuchtung readingsProxy Ku_Lampe:state\

attr Ku_Beleuchtung devStateIcon on:light_light_dim_100@yellow off:light_light
attr Ku_Beleuchtung eventMap on off
attr Ku_Beleuchtung group Lampe_Mitte
attr Ku_Beleuchtung icon light_pendant_light
attr Ku_Beleuchtung room Küche
attr Ku_Beleuchtung setFn {($CMD eq "on")?fhem("set Ku_Licht on"):fhem("set Ku_Licht on")}
attr Ku_Beleuchtung setList on off
attr Ku_Beleuchtung webCmd ON

Damit funktioniert es bei mir perfekt.
Bei mir gehen die Taster auch direkt in die LOGO. Somit ist das ja ein eigenständiges System.
Danke nochmal für den Tip. Das Modul habe ich gesucht.
Gruß
Wladi