Aktion und Status verschiederer "Devices" einzeilig (als EIN Device) darstellen

Begonnen von lenoxef, 14 August 2016, 18:06:41

Vorheriges Thema - Nächstes Thema

lenoxef

Hallo Fhem Gemeinde,

nach mehrfachem Suchen bin ich leider noch nicht fündig geworden. Liegt evantuell auch daran, daß ich nicht so richtig weis wonach ich suchen soll. Sollte doch jemand schon eine Beitrag mit ähnlicher Problemstellung kennen, dann bitte einfach kurze Info. Danke.

Nun zu meinem Problemchen, welches einfach nur estetische Gründe hat, denn die Funktion ist gegeben. Ich steuere u.A. meine Lichter im Haus über eine SPS. Für das Ein- und Ausschalten sowie die Rückmeldung habe ich insgesamt 3 Bits pro Lampe. Dies führt nun dazu, dass ich für jede Lampe in fhem 3 Zeile benötige. Wie bekomme ich das alles in eine Zeile? Zur Verdeutlichung hänge ich mal einen Sceenshot sowie den Code der Ist-Situation an.

Für Hinweise wäre ich sehr Dankbar.




betateilchen

Mit webcmd und devStateIcon, oder habe ich dich irgendwie falsch verstanden?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

entweder deine drei devices über einen dummy und passende notifys oder readingsProxy zu einem zusammen fassen oder schau dir readingsGroup an. da kannst du device übergreifend darstellung, icons und kommandos definieren.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

lenoxef

Ok, vielen Dank.. Ich versuche es mal.. Melde mich dann mit dem Ergebnis.

lenoxef

So, hab jetzt mit webcmd ein paar Versuche gestartet. Mit folgendem Code ist es ja möglich das ganze einzeilig anzuzeigen:

define Licht_Bad dummy
attr Licht_Bad eventMap TRIGGER:Ein TRIGGER:Aus
attr Licht_Bad webCmd Ein:Aus
attr Licht_Bad room 1.5 Bad
attr Licht_Bad group Licht

Das sieht dann so aus [Licht_Bad  ??   Ein   Aus]

wie bekomme ich es jetzt hin, dass der Status von "Licht_Bad_EG_Status" auf --> ?? steht
und wenn ich [Ein]/[Aus] klicke "Licht_Bad_EG_Ein"/"Licht_Bad_EG_Aus" ausgeführt wird?

readingsProxy habe ich mir auch angesehen. Ich denke das geht in die umgekehrte Richtung?! Ich will nicht splitten, sondern zusammenfassen. Oder verstehe ich da etwas falsch?
readingsGroup könnte das richtige sein, allerdings steige ich da mit meinen aktuellen Kenntnissen noch nicht durch.. bin aber zuversichtlich.

justme1968

du kannst mit webCmd jeweils nur kommandos im device absetzen für das webCmd konfiguriert ist.

wenn du in einen dummy verwendest musst du an jedes möglich set ein notify hängen das dann das kommando an dein 'richtiges' device durchreicht und umgekehrt ein notify das den status des device an dem dummy weiterreicht.

oder eben ein readingsProxy auf den status und zwei kommandos die per setFn an die beiden schalt devices durchgereicht werden. das spart die ganzen notify. der ist zwar eigentlich für die umgekehrte richtung gedacht, funktioniert für deinen anwendungsfall aber auch.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

lenoxef

Guten Abend,

ich denke readingsProxy scheint der richtige Ansatz zu sein, aber egal was ich versuche, es will nicht klappen. Nicht mal der Status funktioniert. Als State bekomm ich nur "Initalized" zurück. Hat vieleicht jamend die Zeit und Lust, meinen Code kommentiert anzupassen? Vielen Dank schonmal für die Antworten. Schönen Abend noch.. ich mach jetzt Schluß für heute.

justme1968

du solltest auch zeigen was du probiert hast. und bitte ein jsonlist2 der drei sps devices.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

lenoxef

Hallo, im Anhang schon mal die jsonlist2 der 3 SPS Devices. Was das zeigen meiner Versuche angeht, muss ich mich noch mal einen Abend dran setzen. Wenn was nicht funktioniert, bin ich immer schnell am löschen bzw einspielen meiner Backup.cfg und somit auf Anfang... Nicht funktionierenden Code, speichere ich mir nicht weg. Also heute Abend dann. Danke schon mal bis dahin.

lenoxef

Guten Abend...

hat ein wenig länger gedauert bis ich wieder Zeit gefunden habe. Hab das ganze jetzt mit den Notifys probiert. Sieht aktuell so aus:

# Licht Arbeitszimmer EIN
define Licht_Arbeitszimmer_OG_Ein S7_DWrite db 12 9.6
attr Licht_Arbeitszimmer_OG_Ein IODev SPS
attr Licht_Arbeitszimmer_OG_Ein alias Licht Arbeitszimmer OG Ein
attr Licht_Arbeitszimmer_OG_Ein devStateIcon .*:light_ceiling
attr Licht_Arbeitszimmer_OG_Ein event-on-change-reading state
attr Licht_Arbeitszimmer_OG_Ein eventMap TRIGGER:Ein
attr Licht_Arbeitszimmer_OG_Ein group Licht
attr Licht_Arbeitszimmer_OG_Ein room 2.4 Arbeitszimmer
attr Licht_Arbeitszimmer_OG_Ein webCmd Ein

# Licht Arbeitszimmer AUS
define Licht_Arbeitszimmer_OG_Aus S7_DWrite db 12 9.7
attr Licht_Arbeitszimmer_OG_Aus IODev SPS
attr Licht_Arbeitszimmer_OG_Aus alias Licht Arbeitszimmer OG Aus
attr Licht_Arbeitszimmer_OG_Aus devStateIcon .*:light_ceiling_off
attr Licht_Arbeitszimmer_OG_Aus event-on-change-reading state
attr Licht_Arbeitszimmer_OG_Aus eventMap TRIGGER:Aus
attr Licht_Arbeitszimmer_OG_Aus group Licht
attr Licht_Arbeitszimmer_OG_Aus room 2.4 Arbeitszimmer
attr Licht_Arbeitszimmer_OG_Aus webCmd Aus

# Licht NEU einzeilig
define Licht_AZ dummy
attr Licht_AZ group Licht_neu
attr Licht_AZ readingList Licht_Arbeitszimmer_OG_Status
attr Licht_AZ room 2.4 Arbeitszimmer
attr Licht_AZ setList on off
define Notify_Licht_AZ_off notify Licht_AZ:off {fhem("set Licht_Arbeitszimmer_OG_Aus TRIGGER")}
define Notify_Licht_AZ_on notify Licht_AZ:on {fhem("set Licht_Arbeitszimmer_OG_Ein TRIGGER")}

# Licht Arbeitszimmer STATUS
define Licht_Arbeitszimmer_OG_Status S7_DRead db 2 6.2
attr Licht_Arbeitszimmer_OG_Status IODev SPS
attr Licht_Arbeitszimmer_OG_Status alias Licht Arbeitszimmer Status
attr Licht_Arbeitszimmer_OG_Status event-on-change-reading state
attr Licht_Arbeitszimmer_OG_Status group Licht
attr Licht_Arbeitszimmer_OG_Status room 2.4 Arbeitszimmer


Das Ein- und Aus-Schalten klappt einzeilig. Wie bekomme ich nun den Status von "Licht_Arbeitszimmer_OG_Status" auf die Glühlampe?

Sobald das funktioniert, wird natürlich ausgemistet. Einer eleganteren, Codesparenderen Lösung bin ich auch nicht abgeneigt.

Vielen Dank für die Unterstützung.

Gruß
Marcel

lenoxef

Hat niemand weiter eine Idee?  :(  Sind noch irgendwelche Infos nötig?