Hauptmenü

Dreambox Fhem Plugin

Begonnen von Guest, 13 September 2012, 09:57:05

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

*Die Idee:*
*
*
Du liegst abends nach einem harten Arbeitstag auf der Couch, siehst einen
guten Film und trinkst
gemütlich dein wohlverdientes Feierabendbier.
Aber das Licht ist noch an und der Rolladen noch oben.
Aufstehen, um den Schalter zu drücken? Nö, jetzt sitz ich!
Den Laptop extra aufklappen (wenn ihn deine Frau nicht sogar vorher
woanders hingelegt hat)? Auch blöd.
Mit 3 Tasten auf der Fernbedienung, die du sowiso gerade in der Hand hast
alles erledigen?
Das wäre Top.
*
*
*
*
*Die Durchführung + Funktionsweise:*
*
*
Das Grundgerüst für mein Plugin habe ich mir von: Das enigma2-Plugin
Tutorial  (google)
geholt. An dieser Stelle gleich einen Dank an den Autor, das Tut ist
prima!!!

Es basiert auf einem ShellPrompt plugin, d.h. es führt System Kommandos aus.

Meine Dreambox hat ein enigma2 Image (Linux), was die Grundfunktionen von
Linux
wie z.Bsp. wget unterstützt.

Die Schalter in Fhem können per URL geschaltet werden. Wenn man einen
Schalter hat,
z.B.   Schalter_1_WZ    *on*  *off*  , kopiert den on Link, fügt diesen in
einen Browser
ein und drückt ENTER, wird das Licht eingeschaltet. Genau so geht es
natürlich auch mit
off.

Jetzt müssen wir dem Plugin nur noch beibringen, nach der Auswahl eines
Punktes im Menü
die URL on oder off aufzurufen.

Hier mal ein Bild zur besseren Vorstellung (Bin leider kein guter
Schreiber, hoffe ihr versteht was
ich meine)

<https://lh6.googleusercontent.com/-5PyBBLODg90/UFGLrE0wAwI/AAAAAAAAABY/A2xA8t3V85g/s1600/fhc.jpg>

*
*
Das Plugin müsst ihr natürlich mit euren Links anpassen, da meines
Logischerweise auf mein System angepasst ist.

*Hier das Skript plugin.py:*


# Original Script von:
# Ihad.tv enigma2-plugin tutorial 2010
# lesson 5
# by emanuel
from Screens.Screen import Screen
from Screens.Console import Console
from Components.MenuList import MenuList
from Components.ActionMap import ActionMap
from Plugins.Plugin import PluginDescriptor

###########################################################################

class MyShPrombt(Screen):
skin = """
 # Hier könnt ihr den Namen des Menüs eintragen (title=")
scrollbarMode="showOnDemand" />
"""

def __init__(self, session, args = 0):
self.session = session
 list = []
list.append(("WZ Deckenlamp an", "com_1"))   # Hier werden die Namen der
Menüpunkte definiert und zugeordnet zum Label com_1
list.append(("WZ Deckenlampe aus", "com_2"))  # Hier werden die Namen der
Menüpunkte definiert und zugeordnet zum Label com_2
                list.append(("WZ Rolladen rauf", "com_3"))   # Hier werden
die Namen der Menüpunkte definiert und zugeordnet zum Label com_3
list.append(("WZ Rolladen runter", "com_4"))   # Hier werden die Namen der
Menüpunkte definiert und zugeordnet zum Label com_4
                list.append((_("Exit"), "exit"))
 Screen.__init__(self, session)
self["myMenu"] = MenuList(list)
self["myActionMap"] = ActionMap(["SetupActions"],
{
"ok": self.go,
"cancel": self.cancel
}, -1)

def go(self):
returnValue = self["myMenu"].l.getCurrentSelection()[1]
print "\n[MyShPrombt] returnValue: " + returnValue + "\n"
 if returnValue is not None:
if returnValue is "com_1":
self.prombt("wget -q -O-
'http://fritz.box:8083/fhem?cmd.wz_LampeDecke=set%20wz_LampeDecke%20on&room=1-Wohnzimmer'")
# Hier erfolgt der Aufruf des Aktors (euren link zwischen die ' ' setzen)
in Bezug auf Menüpunkt com_1
elif returnValue is "com_2":
self.prombt("wget -q -O-
'http://fritz.box:8083/fhem?cmd.wz_LampeDecke=set%20wz_LampeDecke%20off&room=1-Wohnzimmer'")
# Hier erfolgt der Aufruf des Aktors (euren link zwischen die ' ' setzen)
in Bezug auf Menüpunkt com_2
elif returnValue is "com_3":
self.prombt("wget -q -O-
'http://fritz.box:8083/fhem?cmd.wz_Rolladen=set%20wz_Rolladen%20off&room=1-Wohnzimmer'")
                # Hier erfolgt der Aufruf des Aktors (euren link zwischen
die ' ' setzen) in Bezug auf Menüpunkt com_3
                        elif returnValue is "com_4":
                                self.prombt("wget -q -O-
'http://fritz.box:8083/fhem?cmd.wz_Rolladen=set%20wz_Rolladen%20on&room=1-Wohnzimmer'")
                                # Hier erfolgt der Aufruf des Aktors (euren
link zwischen die ' ' setzen) in Bezug auf Menüpunkt com_4
else:
print "\n[MyShPrombt] cancel\n"
self.close(None)

def prombt(self, com):
self.session.open(Console,_("start shell com: %s") % (com), ["%s" % com])
 def cancel(self):
print "\n[MyShPrombt] cancel\n"
self.close(None)

###########################################################################

def main(session, **kwargs):
print "\n[MyShPrombt] start\n"
session.open(MyShPrombt)

###########################################################################

def Plugins(**kwargs):
return PluginDescriptor(
name="FloHomeControl V3",  # Dieser Name wird im Plugin Menü angezeigt
description="Haussteuerungssystem Cleopatra",  # Diese Beschreibung wird im
Plugin Menü angezeigt
where = PluginDescriptor.WHERE_PLUGINMENU,
icon="fhc.png",
fnc=main)



Das ganze benötigt noch ein paar zusätzliche Dateien, damit es läuft. habe
euch alles als zip hochgeladen bei:

http://www.share-online.biz/dl/7BAS2AAMRYR

(Selbstverständlich ohne Registrierung downloadbar)


*Installation:*
*
*
Loggt euch per telnet auf eurer Dreambox ein, und wechselt in das
Verzeichnis

/usr/lib/enigma2/python/Plugins/Extensions

Hier erstellt ihr jetzt mit dem Befehl:     mkdir Pluginname
ein neues Verzeichnis. Der Pluginname(=Verzeichnisname) ist frei wählbar.
(bei mir z.B. FHC)

Jetzt per FTP auf die Dreambox einlochen.
Nun ladet die Dateien aus der .zip Datei in das soeben
erstellte Verzeichnis.

Per telnet login und vi müsst ihr jetzt die Datei plugin.py nach euren
wünschen editieren.
 
Jetzt noch ein Neustart der GUI, und dann findet ihr euer soeben erstelltes
Plugin im Menüpunkt Erweiterungen
auf Eurer Box.


<https://lh6.googleusercontent.com/-vuyI4mupDyE/UFGRdwh5R6I/AAAAAAAAABo/XhCAk-bVa7A/s1600/fhcp.jpg>

Es ist nicht perfekt, aber ich bin offen für Ideen und Erweiterungen.

Viel Spaß mit dem Plugin und dem "Feierabendbier in Ruhe"

Gruss
Flo

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hab grade gesehen, das man hier auch Dateien anhängen kann.
Klebt jetzt auch hier dran, ihr müsst nicht von Share laden....

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

UliM

                                                 

Cool! Stellst Du's ins Wiki?


Weiß jemand wie man dasselbe in XBMC hinbekommt? Also URLs als Menüpunkte listen/einbinden?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Guest

Originally posted by: <email address deleted>

Am Donnerstag, 13. September 2012 11:37:31 UTC+2 schrieb UliM:
>
> Cool! Stellst Du's ins Wiki?
>
> Da muss ich mal blöd fragen, wie das geht.
Hab im Wiki einen "Eintrag hinzufügen" Button gesucht, aber leider
erfolglos...
 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Christoph

                                                         

Danke für das Plugin, habs mir grad mal installiert und getestet

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

UliM

                                                 

Wiki:
1. User beantragen, siehe Wiki-Seite news-Kasten oben rechts
2. Seite anlegen: Gewünschten Seitentitel als Suchbefriff eingeben, auf der Suchergebnisseitenklick auf 'diesen Artikel anlegen'
Viel Erfolg!
Gruß Uli

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Guest

Originally posted by: <email address deleted>

Top !!!
, wenn ich Zeit habe werde ich es ausprobieren
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ebenfalls danke!! Super Sache! Warte ich schon lange drauf (Mangels eigener Kenntnisse)

LG
Alex

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Flo,

die Idee ist super, vielen Dank für die erste Version.

Ich könnte mir vorstellen, dass es noch komfortabler wird, wenn pro Gerät
nur eine Zeile angezeigt wird (Gerätename - Status (ggf. mit Icon
(roter/grüner Punkt))) - vielleicht sogar in Gruppen in Untermenüs. Der
Status sollte dann per "Klick" geändert werden können.

So sieht man sogar an der Dreambox, wie der aktuelle Status der Rollläden
oder Lichter ist :-) Den Status solltest du auf per wget bekommen und
entsprechend parsen können.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com