FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: marc-willmann am 25 Januar 2015, 12:31:32

Titel: zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: marc-willmann am 25 Januar 2015, 12:31:32
Hallo,

ich habe ein selbstgebautes Ambilight, das auch bereits in FHEM eingebunden ist (schaltet sich selbst ein/aus abhängig vom Schaltzustand der Heimkinoanlage). Nun möchte ich gerne zusätzlich eigene Effekte über FHEM steuerbar machen, um den WAF weiter zu erhöhen.

Also "Ambilight" -> Klick -> Effekte -> rot / ... und das Ambilight macht das dann, unabhängig von den restlichen Schaltzuständen. Das würde der besten Ehefrau von allen Lichtstimmungen auf Knopfdruck ermöglichen. Auf Kommandozeilenebene funktioniert alles.

Meine Frage nun: Was ist der beste/eleganteste Weg, FHEM das entsprechend beizubringen? Dummy-Device mit Notify? Hört sich für mich erstmal umständlich an, gibt's da nicht was einfacheres?

Als Ergebnis stelle ich mir eine Dropdown-Liste vor, die bei Auswahl eines Wertes einen Befehl auf der Kommandozeile absetzt (in meinem Fall sowas wie

ssh -l ambi 192.168.91.137 "LD_LIBRARY_PATH=/storage/hyperion/bin /storage/hyperion/bin/hyperion-remote.sh <EFFECTNAME>"

Da es das Device Ambilight bei mir schon gibt (um eine Steckdose zu schalten), wäre es ideal, dieses zu erweitern. Falls das nicht gehen sollte, für ich dann ein neues Device "AmbilightSteuerung" verwenden...

Vielen Dank für jeden Schubs in die richtige Richtung.

Marc
Titel: Antw:zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: nesges am 25 Januar 2015, 12:45:32
Verschiedene Devices haben ein setList-Attribut, das würde dir die Dropdown-Liste erzeugen. Siehe zB http://fhem.de/commandref.html#dummy

Dummy+notify sind gar nicht so unelegant, wie sie vielleicht anfangs wirken. Das notify lässt sich später einfach anpassen und es lassen sich beliebig viele notifys auf einen dummy definieren. Je nachdem wie dein Ambilight-Device definiert ist, gibt's aber verschiedene andere Möglichkeiten. Schau dir zB readingsGroup (http://fhem.de/commandref.html#readingsGroup) und readingsProxy (http://fhem.de/commandref.html#readingsProxy) an und lies dir auch den Abschnitt über setList in http://fhem.de/commandref.html#FHEMWEB durch.
Titel: Antw:zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: justme1968 am 25 Januar 2015, 12:54:06
schau dir in der aktuellen fhem.cfg.demo mal die beiden readingsProxy demos für farbige lampen an.

vielleicht hilft dir das ja weiter.

gruß
  andre
Titel: Antw:zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: g4cab am 08 Februar 2015, 10:21:10
Zitat von: marc-willmann am 25 Januar 2015, 12:31:32
ich habe ein selbstgebautes Ambilight, das auch bereits in FHEM eingebunden ist (schaltet sich selbst ein/aus abhängig vom Schaltzustand der Heimkinoanlage).
Moin, habe auch hyperion auf nem RasPi am laufen.

Wie genau hast du das eingebunden?
Könntest deine define Zeile mal posten?
Titel: Antw:zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: Schlimbo am 08 Februar 2015, 10:35:59
Hallo zusammen,

zum einbinden von Hyperion habe ich hier schon mal was geschrieben:
//http://forum.fhem.de/index.php/topic,27900.msg252540.html#msg252540

ich habe mir hier auch einfach Dropdown-Listen erstellt, aus denen z.b. die Effekte ausgewählt werden können.

Gruß Schlimbo
Titel: Antw:zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: g4cab am 14 Februar 2015, 17:50:37
Danke Schlimbo, hab das ganze soweit definiert und auch die myUtils.pm angelegt.

Ich bekomme aber beim Aufruf nur Fehlereinträge im FHEM Log


2015.02.14 17:50:04 3: Hyperion.ntfy return value: Undefined subroutine &main::Hyperion called at (eval 237) line 1.
2015.02.14 17:50:04 1: devStateIcon Hyperion: Undefined subroutine &main::Color_devStateIcon called at (eval 261) line 1.
Titel: Antw:zu bestehendem Gerät eigene Attribute hinzufügen
Beitrag von: g4cab am 14 Februar 2015, 22:56:08
Hab den Fehler gefunden!

Wenn ich den Code hier aus dem Forum kopiere, schleichen sich irgendwie Sonderzeichen mit rein am Ende einiger Zeilen.

Habe nun jeder Zeile einen neuen CR verpasst und nu klappt es :D