Plugin Console automatisch schließen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Plugin Console automatisch schließen

      Hallo
      ich habe mir ein Plugin erstell womit ich befehle zu einer Haussteuerung Fhem senden kann um z.b einen Rollo zu schließen. Das Plugin Funktioniert auch soweit.
      Allerdings wird beim ausführen einer Funktion die Console geöffnet und schließt nicht automatisch. Oder besser noch kann ich die console komplett ausblenden ?
      Wie kann ich das ändern ?

      Python-Quellcode

      1. # Ihad.tv enigma2-plugin tutorial 2010
      2. # lesson 5
      3. # by emanuel
      4. from Screens.Screen import Screen
      5. from Screens.Console import Console
      6. from Components.MenuList import MenuList
      7. from Components.ActionMap import ActionMap
      8. from Plugins.Plugin import PluginDescriptor
      9. import time
      10. ###########################################################################
      11. class MyShPrombt(Screen):
      12. skin = """
      13. <screen position="100,150" size="460,400" title="FloHomeControl V3 - Cleopatra" >
      14. <widget name="myMenu" position="10,10" size="420,380" scrollbarMode="showOnDemand" />
      15. </screen>"""
      16. def __init__(self, session, args = 0):
      17. self.session = session
      18. list = []
      19. list.append(("WZ Philips HUE an", "com_1"))
      20. list.append(("WZ Philips HUE aus", "com_2"))
      21. list.append(("WZ Rollo Rechts auf", "com_3"))
      22. list.append(("WZ Rollo Rechts zu", "com_4"))
      23. list.append(("WZ Rollo Sofa auf", "com_5"))
      24. list.append(("WZ Rollo Sofa zu", "com_6"))
      25. list.append(("WZ Rollo Hof auf", "com_7"))
      26. list.append(("WZ Rollo Hof zu", "com_8"))
      27. list.append(("WZ Rollo Balkon auf", "com_9"))
      28. list.append(("WZ Rollo Balkon zu","com_10"))
      29. list.append((_("Exit"), "exit"))
      30. Screen.__init__(self, session)
      31. self["myMenu"] = MenuList(list)
      32. self["myActionMap"] = ActionMap(["SetupActions"],
      33. {
      34. "ok": self.go,
      35. "cancel": self.cancel
      36. }, -1)
      37. def go(self):
      38. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      39. print "\n[MyShPrombt] returnValue: " + returnValue + "\n"
      40. if returnValue is not None:
      41. if returnValue is "com_1":
      42. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20on&room=HUEDevice'")
      43. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20on&room=HUEDevice'")
      44. elif returnValue is "com_2":
      45. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20off&room=HUEDevice'")
      46. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20off&room=HUEDevice'")
      47. elif returnValue is "com_3":
      48. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20on&room=SPS'")
      49. time.sleep (1)
      50. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20off&room=SPS'")
      51. elif returnValue is "com_4":
      52. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20on&room=SPS'")
      53. time.sleep (1)
      54. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20off&room=SPS'")
      55. elif returnValue is "com_5":
      56. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20on&room=SPS'")
      57. time.sleep (1)
      58. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20off&room=SPS'")
      59. elif returnValue is "com_6":
      60. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20on&room=SPS'")
      61. time.sleep (1)
      62. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20off&room=SPS'")
      63. elif returnValue is "com_7":
      64. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20on&room=SPS'")
      65. time.sleep (1)
      66. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20off&room=SPS'")
      67. elif returnValue is "com_8":
      68. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20on&room=SPS'")
      69. time.sleep (1)
      70. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20off&room=SPS'")
      71. elif returnValue is "com_9":
      72. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20on&room=SPS'")
      73. time.sleep (1)
      74. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20off&room=SPS'")
      75. elif returnValue is "com_10":
      76. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20on&room=SPS'")
      77. time.sleep (1)
      78. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20off&room=SPS'")
      79. else:
      80. print "\n[MyShPrombt] cancel\n"
      81. self.close(None)
      82. def prombt(self, com):
      83. self.session.open(Console,_("start shell com: %s") % (com), ["%s" % com])
      84. def cancel(self):
      85. print "\n[MyShPrombt] cancel\n"
      86. self.close(None)
      87. ###########################################################################
      88. def main(session, **kwargs):
      89. print "\n[MyShPrombt] start\n"
      90. session.open(MyShPrombt)
      91. ###########################################################################
      92. def Plugins(**kwargs):
      93. return PluginDescriptor(
      94. name="FloHomeControl V3",
      95. description="Haussteuerungssystem Cleopatra",
      96. where = PluginDescriptor.WHERE_PLUGINMENU,
      97. icon="fhc.png",
      98. fnc=main)
      Alles anzeigen
      Dateien

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von emilio20 ()

    • Hallo
      könnt ihr mir hierzu ein beispiel posten da ich in Phyton nicht so fit bind und mir nur das Script auf meine bedürfinisse angepasst habe ?

      Wie muss ich das mit os.system(command) machen ?

      so geht es nicht

      Quellcode

      1. def prombt(self, com):
      2. self.os.system(com)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von emilio20 ()

    • Habe es so abgeändert aber jetzt stürtzt die Box ab wenn ich einen Befehl ausführe

      Python-Quellcode

      1. # Ihad.tv enigma2-plugin tutorial 2010
      2. # lesson 5
      3. # by emanuel
      4. from Screens.Screen import Screen
      5. from Screens.Console import Console
      6. from Components.MenuList import MenuList
      7. from Components.ActionMap import ActionMap
      8. from Plugins.Plugin import PluginDescriptor
      9. import time
      10. ###########################################################################
      11. class MyShPrombt(Screen):
      12. skin = """
      13. <screen position="100,150" size="460,400" title="FloHomeControl V3 - Cleopatra" >
      14. <widget name="myMenu" position="10,10" size="420,380" scrollbarMode="showOnDemand" />
      15. </screen>"""
      16. def __init__(self, session, args = 0):
      17. self.session = session
      18. list = []
      19. list.append(("WZ Philips HUE an", "com_1"))
      20. list.append(("WZ Philips HUE aus", "com_2"))
      21. list.append(("WZ Rollo Rechts auf", "com_3"))
      22. list.append(("WZ Rollo Rechts zu", "com_4"))
      23. list.append(("WZ Rollo Sofa auf", "com_5"))
      24. list.append(("WZ Rollo Sofa zu", "com_6"))
      25. list.append(("WZ Rollo Hof auf", "com_7"))
      26. list.append(("WZ Rollo Hof zu", "com_8"))
      27. list.append(("WZ Rollo Balkon auf", "com_9"))
      28. list.append(("WZ Rollo Balkon zu","com_10"))
      29. list.append((_("Exit"), "exit"))
      30. Screen.__init__(self, session)
      31. self["myMenu"] = MenuList(list)
      32. self["myActionMap"] = ActionMap(["SetupActions"],
      33. {
      34. "ok": self.go,
      35. "cancel": self.cancel
      36. }, -1)
      37. def go(self):
      38. returnValue = self["myMenu"].l.getCurrentSelection()[1]
      39. print "\n[MyShPrombt] returnValue: " + returnValue + "\n"
      40. if returnValue is not None:
      41. if returnValue is "com_1":
      42. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20on&room=HUEDevice'")
      43. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20on&room=HUEDevice'")
      44. elif returnValue is "com_2":
      45. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20off&room=HUEDevice'")
      46. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20off&room=HUEDevice'")
      47. elif returnValue is "com_3":
      48. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20on&room=SPS'")
      49. time.sleep (1)
      50. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20off&room=SPS'")
      51. elif returnValue is "com_4":
      52. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20on&room=SPS'")
      53. time.sleep (1)
      54. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20off&room=SPS'")
      55. elif returnValue is "com_5":
      56. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20on&room=SPS'")
      57. time.sleep (1)
      58. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20off&room=SPS'")
      59. elif returnValue is "com_6":
      60. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20on&room=SPS'")
      61. time.sleep (1)
      62. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20off&room=SPS'")
      63. elif returnValue is "com_7":
      64. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20on&room=SPS'")
      65. time.sleep (1)
      66. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20off&room=SPS'")
      67. elif returnValue is "com_8":
      68. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20on&room=SPS'")
      69. time.sleep (1)
      70. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20off&room=SPS'")
      71. elif returnValue is "com_9":
      72. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20on&room=SPS'")
      73. time.sleep (1)
      74. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20off&room=SPS'")
      75. elif returnValue is "com_10":
      76. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20on&room=SPS'")
      77. time.sleep (1)
      78. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20off&room=SPS'")
      79. else:
      80. print "\n[MyShPrombt] cancel\n"
      81. self.close(None)
      82. #def prombt(self, com):
      83. #self.session.open(Console,_("start shell com: %s") % (com), ["%s" % com])
      84. def prombt(self, com):
      85. container = eConsoleAppContainer()
      86. container.execute(com)
      87. def cancel(self):
      88. print "\n[MyShPrombt] cancel\n"
      89. self.close(None)
      90. ###########################################################################
      91. def main(session, **kwargs):
      92. print "\n[MyShPrombt] start\n"
      93. session.open(MyShPrombt)
      94. ###########################################################################
      95. def Plugins(**kwargs):
      96. return PluginDescriptor(
      97. name="FloHomeControl V3",
      98. description="Haussteuerungssystem Cleopatra",
      99. where = PluginDescriptor.WHERE_PLUGINMENU,
      100. icon="fhc.png",
      101. fnc=main)
      Alles anzeigen
    • Du musst noch eine Zeile zufügen bei den Imports:
      from enigma import eConsoleAppContainer


      Für die Variante mit os.system ebenfalls:


      Python-Quellcode

      1. from os import system
      2. def prombt(self, com):
      3. system(com)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von pzy-co ()

    • Super vielen Dank
      Plugin Funktioniert jetzt.

      Ist es auch möglich z.b im Plugin Rollo Sofa auzuwählen und über eine Taste z.b Bouquet + und Bouquet - den Befahl für Rollo auf und Rollo zu auszuführen ?

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von emilio20 ()

    • Geht natürlich auch, habe dir das mal schnell geändert.

      Spoiler anzeigen

      Python-Quellcode

      1. # Ihad.tv enigma2-plugin tutorial 2010
      2. # lesson 5
      3. # by emanuel
      4. from Screens.Screen import Screen
      5. from Screens.Console import Console
      6. from Components.MenuList import MenuList
      7. from Components.ActionMap import ActionMap
      8. from Components.Label import Label
      9. from Plugins.Plugin import PluginDescriptor
      10. from enigma import eConsoleAppContainer
      11. import time
      12. ###########################################################################
      13. class MyShPrombt(Screen):
      14. skin = """
      15. <screen position="100,150" size="460,450" title="FloHomeControl V3 - Cleopatra" >
      16. <widget name="device" position="10,0" size="460,30" font="Console;22" />
      17. <widget name="myMenu" position="10,50" size="420,380" scrollbarMode="showOnDemand" />
      18. </screen>"""
      19. def __init__(self, session, args = 0):
      20. self.session = session
      21. self.device = None
      22. list = []
      23. list.append(("WZ Philips HUE", "dev1"))
      24. list.append(("WZ Rollo Rechts", "dev2"))
      25. list.append(("WZ Rollo Sofa", "dev3"))
      26. list.append(("WZ Rollo Hof", "dev4"))
      27. list.append(("WZ Rollo Balkon", "dev5"))
      28. Screen.__init__(self, session)
      29. self["device"] = Label()
      30. self["myMenu"] = MenuList(list)
      31. self["myActionMap"] = ActionMap(["PiPSetupActions"],
      32. {
      33. "ok": self.go,
      34. "cancel": self.cancel,
      35. "size+": self.key_bouq_pl,
      36. "size-": self.key_bouq_min
      37. }, -1)
      38. def go(self):
      39. cur = self["myMenu"].l.getCurrentSelection()
      40. self.device = cur[1]
      41. self["device"].setText(cur[0])
      42. print "\n[MyShPrombt] device: " + self.device + "\n"
      43. def key_bouq_pl(self):
      44. if self.device is not None:
      45. if self.device == "dev1":
      46. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20on&room=HUEDevice'")
      47. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20on&room=HUEDevice'")
      48. elif self.device == "dev2":
      49. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20on&room=SPS'")
      50. time.sleep (1)
      51. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20off&room=SPS'")
      52. elif self.device == "dev3":
      53. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20on&room=SPS'")
      54. time.sleep (1)
      55. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20off&room=SPS'")
      56. elif self.device == "dev4":
      57. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20on&room=SPS'")
      58. time.sleep (1)
      59. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20off&room=SPS'")
      60. elif self.device == "dev5":
      61. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20on&room=SPS'")
      62. time.sleep (1)
      63. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20off&room=SPS'")
      64. def key_bouq_min(self):
      65. if self.device is not None:
      66. if self.device == "dev1":
      67. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20off&room=HUEDevice'")
      68. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20off&room=HUEDevice'")
      69. elif self.device == "dev2":
      70. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20on&room=SPS'")
      71. time.sleep (1)
      72. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20off&room=SPS'")
      73. elif self.device == "dev3":
      74. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20on&room=SPS'")
      75. time.sleep (1)
      76. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20off&room=SPS'")
      77. elif self.device == "dev4":
      78. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20on&room=SPS'")
      79. time.sleep (1)
      80. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20off&room=SPS'")
      81. elif self.device == "dev5":
      82. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20on&room=SPS'")
      83. time.sleep (1)
      84. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20off&room=SPS'")
      85. def prombt(self, com):
      86. print com
      87. container = eConsoleAppContainer()
      88. container.execute(com)
      89. def cancel(self):
      90. print "\n[MyShPrombt] cancel\n"
      91. self.close(None)
      92. ###########################################################################
      93. def main(session, **kwargs):
      94. print "\n[MyShPrombt] start\n"
      95. session.open(MyShPrombt)
      96. ###########################################################################
      97. def Plugins(**kwargs):
      98. return PluginDescriptor(
      99. name="FloHomeControl V3",
      100. description="Haussteuerungssystem Cleopatra",
      101. where = PluginDescriptor.WHERE_PLUGINMENU,
      102. icon="fhc.png",
      103. fnc=main)
      Alles anzeigen


      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von pzy-co ()

    • Hallo pzy.co
      super vielen Dank Plugin Funktioniert.
      eine Frage habe ich noch. size+ undsize- sind ja die Tasten oder ?
      Gibt es irgendwo eine Auflistung derTastenbezeichnung für Plugins?
    • Hallo
      wie kann ich zu dem device test noch den Text AUF oder ZU hinzufügen ?

      Quellcode

      1. list.append(("Rollo Wohnzimmer", "dev1", "Auf", "Zu";))
      2. def go(self):
      3. cur = self["myMenu"].l.getCurrentSelection()
      4. self.device = cur[1]
      5. self["device"].setText(cur[0]) + setText(cur[2]) ???????????????????????
      6. print "\n[MyShPrombt] device: " + self.device + "\n"

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von emilio20 ()

    • Hallo.

      Einfach in die erste Klammer vom setText zufügen, oder den ursprünglichen Text abändern.

      self["device"].setText(cur[0] + " " + cur[2])

      oder

      list.append(("Rollo Wohnzimmer - Auf / Zu", "dev1"))


      Wann soll der Text denn erscheinen?
      Die Einfügeposition wird ja beim Drücken der OK-Taste ausgeführt, da ist "Auf" oder "Zu" noch nicht festgelegt, das hast du ja jetzt auf den Channel-Tasten.

      Wenn die aktuelle Richtung "Auf" oder "Zu" wahlweise angezeigt werden soll, muss der Label-Text in key_bouq_pl() und key_bouq_min() gesetzt werden.


      Kannst du mal in Worten beschreiben, wie du dir den Ablauf vorstellst?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von pzy-co ()

    • Hallo sorry das ich mich so spät melde.
      Das mit dem Text habe ich hin bekommen.
      Ich kann in meinem Plug-In Rollos mit der Taste + und - auf und zu fahren.
      Zusätzlich möchte ich noch wenn ich auf den entsprechenden Rollo zape und die Taste OK drücke das eine Fenster auf geht wo ich Rollo Auf oder Rollo zu auswählen und mit OK starten kann.

      Python-Quellcode

      1. # Ihad.tv enigma2-plugin tutorial 2010
      2. # lesson 5
      3. # by emanuel
      4. from Screens.Screen import Screen
      5. from Screens.Console import Console
      6. from Components.MenuList import MenuList
      7. from Components.ActionMap import ActionMap
      8. from Components.Label import Label
      9. from Plugins.Plugin import PluginDescriptor
      10. from enigma import eConsoleAppContainer
      11. import time
      12. ###########################################################################
      13. class MyShPrombt(Screen):
      14. skin = """
      15. <screen position="100,150" size="460,450" title="FHEM Haussteuerung" >
      16. <widget name="device" position="10,0" size="460,30" font="Console;22" />
      17. <widget name="myMenu" position="10,50" size="420,380" scrollbarMode="showOnDemand" />
      18. </screen>"""
      19. def __init__(self, session, args = 0):
      20. self.session = session
      21. self.device = None
      22. list = []
      23. list.append(("WZ Philips HUE", "dev1", "An", "Aus"))
      24. list.append(("WZ Rollo Rechts", "dev2", "Auf", "Zu"))
      25. list.append(("WZ Rollo Sofa", "dev3", "Auf", "Zu"))
      26. list.append(("WZ Rollo Hof", "dev4", "Auf", "Zu"))
      27. list.append(("WZ Rollo Balkon", "dev5", "Auf", "Zu"))
      28. Screen.__init__(self, session)
      29. self["device"] = Label()
      30. self["myMenu"] = MenuList(list)
      31. self["myActionMap"] = ActionMap(["PiPSetupActions"],
      32. {
      33. "ok": self.go,
      34. "cancel": self.cancel,
      35. "size+": self.key_bouq_min,
      36. "size-": self.key_bouq_pl
      37. }, -1)
      38. def go(self):
      39. cur = self["myMenu"].l.getCurrentSelection()
      40. self.device = cur[1]
      41. self["device"].setText(cur[0])
      42. print "\n[MyShPrombt] device: " + self.device + "\n"
      43. def key_bouq_pl(self):
      44. cur = self["myMenu"].l.getCurrentSelection()
      45. self.device = cur[1]
      46. self["device"].setText(cur[0] + " " + cur[3])
      47. print "\n[MyShPrombt] device : " + self.device + "\n"
      48. if self.device is not None:
      49. if self.device == "dev1":
      50. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20off&room=HUEDevice'")
      51. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20off&room=HUEDevice'")
      52. elif self.device == "dev2":
      53. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20on&room=SPS'")
      54. time.sleep (1)
      55. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20off&room=SPS'")
      56. elif self.device == "dev3":
      57. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20on&room=SPS'")
      58. time.sleep (1)
      59. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20off&room=SPS'")
      60. elif self.device == "dev4":
      61. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20on&room=SPS'")
      62. time.sleep (1)
      63. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20off&room=SPS'")
      64. elif self.device == "dev5":
      65. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20on&room=SPS'")
      66. time.sleep (1)
      67. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20off&room=SPS'")
      68. def key_bouq_min(self):
      69. cur = self["myMenu"].l.getCurrentSelection()
      70. self.device = cur[1]
      71. self["device"].setText(cur[0] + " " + cur[2])
      72. print "\n[MyShPrombt] device: " + self.device +"\n"
      73. if self.device is not None:
      74. if self.device == "dev1":
      75. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20on&room=HUEDevice'")
      76. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20on&room=HUEDevice'")
      77. elif self.device == "dev2":
      78. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20on&room=SPS'")
      79. time.sleep (1)
      80. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20off&room=SPS'")
      81. elif self.device == "dev3":
      82. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20on&room=SPS'")
      83. time.sleep (1)
      84. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20off&room=SPS'")
      85. elif self.device == "dev4":
      86. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20on&room=SPS'")
      87. time.sleep (1)
      88. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20off&room=SPS'")
      89. elif self.device == "dev5":
      90. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20on&room=SPS'")
      91. time.sleep (1)
      92. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20off&room=SPS'")
      93. def prombt(self, com):
      94. print com
      95. container = eConsoleAppContainer()
      96. container.execute(com)
      97. def cancel(self):
      98. print "\n[MyShPrombt] cancel\n"
      99. self.close(None)
      100. ###########################################################################
      101. def main(session, **kwargs):
      102. print "\n[MyShPrombt] start\n"
      103. session.open(MyShPrombt)
      104. ###########################################################################
      105. def Plugins(**kwargs):
      106. return PluginDescriptor(
      107. name="FHEM Haussteuerung",
      108. description="Haussteuerungssystem",
      109. where = PluginDescriptor.WHERE_PLUGINMENU,
      110. icon="fhc.png",
      111. fnc=main)
      Alles anzeigen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von emilio20 ()

    • Hallo emilio20


      Wenn Du zusätzlich eine Auswahlmöglichkeit haben willst, musst Du eine zweite "Menulist" dafür erstellen.
      Und nicht vergessen im skin ein Widget mit Position und Größe hinzufügen.



      Methode "go(self)":


      Mit "self["Menu2"].selectionEnabled(True)" und "self["Menu2"].selectionEnabled(False)" werden Menüs aktiviert und deaktiviert. (Du musst erst das Eine deaktiveren bevor das Andere aktivert wird.)


      Mit "self["Menu2"].show()" und "self["Menu2"].hide()" kann das Menü dann ein- bzw. ausgeblendet werden.


      Mit einer "if" Abfrage wird je nach Auswahl "self.key_bouq_min" oder "self.key_bouq_pl" abgerufen.



      Ich habe Dir die wichtigsten Befehle vorgegeben. Versuche es einmal selbst.


      Viel Spaß beim Lernen.
    • Hallo,

      2. Menulist oder die ChoiceBox nutzen.

      Python-Quellcode

      1. # Ihad.tv enigma2-plugin tutorial 2010
      2. # lesson 5
      3. # by emanuel
      4. from Screens.Screen import Screen
      5. from Screens.Console import Console
      6. from Screens.ChoiceBox import ChoiceBox
      7. from Components.MenuList import MenuList
      8. from Components.ActionMap import ActionMap
      9. from Components.Label import Label
      10. from Plugins.Plugin import PluginDescriptor
      11. from enigma import eConsoleAppContainer
      12. import time
      13. ###########################################################################
      14. class MyShPrombt(Screen):
      15. skin = """
      16. <screen position="100,150" size="460,450" title="FHEM Haussteuerung" >
      17. <widget name="device" position="10,0" size="460,30" font="Console;22" />
      18. <widget name="myMenu" position="10,50" size="420,380" scrollbarMode="showOnDemand" />
      19. </screen>"""
      20. def __init__(self, session, args = 0):
      21. self.session = session
      22. self.device = None
      23. list = []
      24. list.append(("WZ Philips HUE", "dev1", "An", "Aus"))
      25. list.append(("WZ Rollo Rechts", "dev2", "Auf", "Zu"))
      26. list.append(("WZ Rollo Sofa", "dev3", "Auf", "Zu"))
      27. list.append(("WZ Rollo Hof", "dev4", "Auf", "Zu"))
      28. list.append(("WZ Rollo Balkon", "dev5", "Auf", "Zu"))
      29. Screen.__init__(self, session)
      30. self["device"] = Label()
      31. self["myMenu"] = MenuList(list)
      32. self["myActionMap"] = ActionMap(["PiPSetupActions"],
      33. {
      34. "ok": self.go,
      35. "cancel": self.cancel,
      36. "size+": self.key_bouq_pl,
      37. "size-": self.key_bouq_min
      38. }, -1)
      39. def go(self):
      40. cur = self["myMenu"].l.getCurrentSelection()
      41. self.device = cur[1]
      42. self["device"].setText(cur[0])
      43. print "\n[MyShPrombt] device: " + self.device + "\n"
      44. menu = [(cur[2], self.key_bouq_pl),
      45. (cur[3], self.key_bouq_min)
      46. ]
      47. self.session.openWithCallback(
      48. self.menuCallback,
      49. ChoiceBox,
      50. title = cur[0],
      51. list = menu,
      52. keys = [ "1", "2" ]
      53. )
      54. def menuCallback(self, ret):
      55. ret and ret[1]()
      56. def key_bouq_min(self):
      57. cur = self["myMenu"].l.getCurrentSelection()
      58. self.device = cur[1]
      59. self["device"].setText(cur[0] + " " + cur[3])
      60. print "\n[MyShPrombt] device : " + self.device + "\n"
      61. if self.device is not None:
      62. if self.device == "dev1":
      63. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20off&room=HUEDevice'")
      64. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20off&room=HUEDevice'")
      65. elif self.device == "dev2":
      66. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20on&room=SPS'")
      67. time.sleep (1)
      68. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20off&room=SPS'")
      69. elif self.device == "dev3":
      70. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20on&room=SPS'")
      71. time.sleep (1)
      72. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20off&room=SPS'")
      73. elif self.device == "dev4":
      74. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20on&room=SPS'")
      75. time.sleep (1)
      76. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20off&room=SPS'")
      77. elif self.device == "dev5":
      78. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20on&room=SPS'")
      79. time.sleep (1)
      80. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20off&room=SPS'")
      81. def key_bouq_pl(self):
      82. cur = self["myMenu"].l.getCurrentSelection()
      83. self.device = cur[1]
      84. self["device"].setText(cur[0] + " " + cur[2])
      85. print "\n[MyShPrombt] device: " + self.device +"\n"
      86. if self.device is not None:
      87. if self.device == "dev1":
      88. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice1=set%20HUEDevice1%20on&room=HUEDevice'")
      89. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20on&room=HUEDevice'")
      90. elif self.device == "dev2":
      91. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20on&room=SPS'")
      92. time.sleep (1)
      93. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20off&room=SPS'")
      94. elif self.device == "dev3":
      95. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20on&room=SPS'")
      96. time.sleep (1)
      97. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20off&room=SPS'")
      98. elif self.device == "dev4":
      99. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20on&room=SPS'")
      100. time.sleep (1)
      101. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20off&room=SPS'")
      102. elif self.device == "dev5":
      103. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20on&room=SPS'")
      104. time.sleep (1)
      105. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20off&room=SPS'")
      106. def prombt(self, com):
      107. print com
      108. container = eConsoleAppContainer()
      109. container.execute(com)
      110. def cancel(self):
      111. print "\n[MyShPrombt] cancel\n"
      112. self.close(None)
      113. ###########################################################################
      114. def main(session, **kwargs):
      115. print "\n[MyShPrombt] start\n"
      116. session.open(MyShPrombt)
      117. ###########################################################################
      118. def Plugins(**kwargs):
      119. return PluginDescriptor(
      120. name="FHEM Haussteuerung",
      121. description="Haussteuerungssystem",
      122. where = PluginDescriptor.WHERE_PLUGINMENU,
      123. icon="fhc.png",
      124. fnc=main)
      Alles anzeigen
    • Hallo pzy-co,
      vielen dank das skript funktioniert.
      Denoch würde ich gerne alles verstehen, leider verstehe ich von dieser Programiersprache nicht sehr viel. Ich kenne mir in c++ und Auto IT aus aber mit Python kann ich mich noch nicht anfreunden.

      Ich wäre dir sehr dankbar wenn du mir die einselnen Abläufe erklären könntest.



      Quellcode

      1. def go(self):
      2. cur = self["myMenu"].l.getCurrentSelection() Hier list du den Cruser aus der Menüliste
      3. self.device = cur[1]
      4. self["device"].setText(cur[0]) hier schreibst du in die Vaiable device den wert des Array [0]
      5. print "\n[MyShPrombt] device: " + self.device + "\n "
      6. menu = [(cur[2], self.key_bouq_pl),
      7. (cur[3], self.key_bouq_min)
      8. ]
      9. self.session.openWithCallback(
      10. self.menuCallback,
      11. ChoiceBox,
      12. title = cur[0],
      13. list = menu,
      14. keys = [ "1", "2" ]
      15. )
      16. def menuCallback(self, ret):
      17. ret and ret[1]()
      Alles anzeigen
    • Hallo,

      hier mal der Code mit Kommentaren.

      Python-Quellcode

      1. def go(self):
      2. cur = self["myMenu"].l.getCurrentSelection() # Zeile auslesen, z.B. ("WZ Philips HUE", "dev1", "An", "Aus")
      3. self.device = cur[1] # "dev1" in Variable self.device merken für die Methoden key_bouq_pl und key_bouq_min, somit kannst du den Namen "WZ Philips HUE" ändern, ohne weitere Codeanpassungen
      4. self["device"].setText(cur[0]) # Text des Labels setzen, z.B. "WZ Philips HUE"
      5. print "\n[MyShPrombt] device: " + self.device + "\n"
      6. menu = [(cur[2], self.key_bouq_pl), # Neue Liste für den Screen ChoiceBox erstellen mit den möglichen Funktionen und der Referenz auf die Methoden key_bouq_pl und key_bouq_min: [("An",key_bouq_pl), ("Aus",key_bouq_min)]
      7. (cur[3], self.key_bouq_min)
      8. ]
      9. self.session.openWithCallback( # Neuen Screen ChoiceBox öffnen, der Alte wird automatisch ausgeblendet (Der Code ist in "/usr/lib/enigma2/python/Screens/ChoiceBox.py")
      10. self.menuCallback, # Referenz für den Callback, wird beim Verlassen der Choicebox aufgerufen
      11. ChoiceBox, # Dieser Screen soll geöffnet werden
      12. title = cur[0], # Parameter für ChoiceBox.__init__() übergeben
      13. list = menu,
      14. keys = [ "1", "2" ]
      15. )
      16. def menuCallback(self, ret): # Diese Methode wird bei der Rückkehr aus der Choicebox aufgerufen, wir haben die Referenz dafür übergeben
      17. ret and ret[1]() # Referenz auf key_bouq_pl oder key_bouq_min ausführen, je nachdem welche Zeile in der Choicebox gewählt wurde, z.B. ("An",key_bouq_pl)
      18. # Wurde keine Zeile gewählt, sondern mit der Exit-Taste abgebrochen, wird None über die Variable ret zurückgegeben.
      19. # ret and ret[1]() wäre gleich mit:
      20. # if ret is not None:
      21. # ret[1]()
      Alles anzeigen
    • Hallo
      ich habe mein Plugin bei den Philips Hue lampen noch was erweitert.

      um Einstellungen zu ändern muss eigentlich nur im Befhel


      "wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20hueDown&room=HUEDevice

      der Teil "hueDoen" ersetz werden gegen den jeweiligen Befehl er list



      list.append(("WZ Philips HUE", "dev1", "on", "off","dimUp", "dimDown", "hueUp", "hueDown")





      self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20" + cur[4] + "&room=HUEDevice'")



      Wie kann ich jetzt die [4] durch die jeweilige Zahl in menu ersetzen ? Somit müsste ich nicht für jeden Befehl ein "def" anlegen

      Spoiler anzeigen

      menu = [(cur[2], self.key_bouq_pl),
      (cur[3], self.key_bouq_min),
      (cur[4], self.dimUp),
      (cur[5], self.dimDown),
      (cur[6], self.hueUp),
      (cur[7], self.hueDown)






      Wie kann ich verhindern das ich mit OK openWithCallback verlasse ?
      Ich mochte nur mit exit openWithCallback verlassen



      Python-Quellcode

      1. # Ihad.tv enigma2-plugin tutorial 2010
      2. # lesson 5
      3. # by emanuel
      4. from Screens.Screen import Screen
      5. from Screens.Console import Console
      6. from Screens.ChoiceBox import ChoiceBox
      7. from Components.MenuList import MenuList
      8. from Components.ActionMap import ActionMap
      9. from Components.Label import Label
      10. from Plugins.Plugin import PluginDescriptor
      11. from enigma import eConsoleAppContainer
      12. import time
      13. ###########################################################################
      14. class MyShPrombt(Screen):
      15. skin = """
      16. <screen position="100,150" size="460,450" title="FHEM Haussteuerung" >
      17. <widget name="device" position="10,0" size="460,30" font="Console;22" />
      18. <widget name="myMenu" position="10,50" size="420,380" scrollbarMode="showOnDemand" />
      19. </screen>"""
      20. def __init__(self, session, args = 0):
      21. self.session = session
      22. self.device = None
      23. list = []
      24. list.append(("WZ Philips HUE", "dev1", "on", "off","dimUp", "dimDown", "hueUp", "hueDown"))
      25. list.append(("WZ Rollo Rechts", "dev2", "Auf", "Zu"))
      26. list.append(("WZ Rollo Sofa", "dev3", "Auf", "Zu"))
      27. list.append(("WZ Rollo Hof", "dev4", "Auf", "Zu"))
      28. list.append(("WZ Rollo Balkon", "dev5", "Auf", "Zu"))
      29. Screen.__init__(self, session)
      30. self["device"] = Label()
      31. self["myMenu"] = MenuList(list)
      32. self["myActionMap"] = ActionMap(["PiPSetupActions"],
      33. {
      34. "ok": self.go,
      35. "cancel": self.cancel,
      36. "size+": self.key_bouq_pl,
      37. "size-": self.key_bouq_min
      38. }, -1)
      39. def go(self):
      40. cur = self["myMenu"].l.getCurrentSelection()
      41. self.device = cur[1]
      42. self["device"].setText(cur[0])
      43. print "\n[MyShPrombt] device: " + self.device + "\n"
      44. menu = [(cur[2], self.key_bouq_pl),
      45. (cur[3], self.key_bouq_min),
      46. (cur[4], self.dimUp),
      47. (cur[5], self.dimDown),
      48. (cur[6], self.hueUp),
      49. (cur[7], self.hueDown)
      50. ]
      51. self.session.openWithCallback(
      52. self.menuCallback,
      53. ChoiceBox,
      54. title = cur[0],
      55. list = menu,
      56. keys = [ "1", "2" , "3" , "4", "5" , "6" ,]
      57. )
      58. def menuCallback(self, ret):
      59. ret and ret[1]()
      60. def key_bouq_min(self):
      61. cur = self["myMenu"].l.getCurrentSelection()
      62. self.device = cur[1]
      63. self["device"].setText(cur[0] + " " + cur[3])
      64. print "\n[MyShPrombt] device : " + self.device + "\n"
      65. if self.device is not None:
      66. if self.device == "dev1":
      67. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20off&room=HUEDevice'")
      68. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20off&room=HUEDevice'")
      69. elif self.device == "dev2":
      70. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20on&room=SPS'")
      71. time.sleep (1)
      72. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU=set%20DB353_DBX1_1_Taster_ROLLO_OG_WZ_rechts_ZU%20off&room=SPS'")
      73. elif self.device == "dev3":
      74. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20on&room=SPS'")
      75. time.sleep (1)
      76. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU=set%20DB353_DBX1_3_Taster_ROLLO_OG_WZ_Sofa_ZU%20off&room=SPS'")
      77. elif self.device == "dev4":
      78. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20on&room=SPS'")
      79. time.sleep (1)
      80. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU=set%20DB353_DBX1_5_Taster_ROLLO_OG_WZ_Hof_ZU%20off&room=SPS'")
      81. elif self.device == "dev5":
      82. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20on&room=SPS'")
      83. time.sleep (1)
      84. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU=set%20DB353_DBX1_7_Taster_ROLLO_OG_WZ_Balkon_ZU%20off&room=SPS'")
      85. def key_bouq_pl(self):
      86. cur = self["myMenu"].l.getCurrentSelection()
      87. self.device = cur[1]
      88. self["device"].setText(cur[0] + " " + cur[2])
      89. print "\n[MyShPrombt] device: " + self.device +"\n"
      90. if self.device is not None:
      91. if self.device == "dev1":
      92. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20on&room=HUEDevice'")
      93. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20on&room=HUEDevice'")
      94. elif self.device == "dev2":
      95. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20on&room=SPS'")
      96. time.sleep (1)
      97. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF=set%20DB353_DBX1_0_Taster_ROLLO_OG_WZ_rechts_AUF%20off&room=SPS'")
      98. elif self.device == "dev3":
      99. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20on&room=SPS'")
      100. time.sleep (1)
      101. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF=set%20DB353_DBX1_2_Taster_ROLLO_OG_WZ_Sofa_AUF%20off&room=SPS'")
      102. elif self.device == "dev4":
      103. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20on&room=SPS'")
      104. time.sleep (1)
      105. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF=set%20DB353_DBX1_4_Taster_ROLLO_OG_WZ_Hof_AUF%20off&room=SPS'")
      106. elif self.device == "dev5":
      107. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20on&room=SPS'")
      108. time.sleep (1)
      109. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF=set%20DB353_DBX1_6_Taster_ROLLO_OG_WZ_Balkon_AUF%20off&room=SPS'")
      110. ###############Philips Hue Befehle ###########################################################################################################
      111. def dimUp(self):
      112. cur = self["myMenu"].l.getCurrentSelection()
      113. self.device = cur[1]
      114. self["device"].setText(cur[0] + " " + cur[4])
      115. print "\n[MyShPrombt] device : " + self.device + "\n"
      116. if self.device is not None:
      117. if self.device == "dev1":
      118. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20dimUp&room=HUEDevice'")
      119. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20dimUp&room=HUEDevice'")
      120. def dimDown(self):
      121. cur = self["myMenu"].l.getCurrentSelection()
      122. self.device = cur[1]
      123. self["device"].setText(cur[0] + " " + cur[5])
      124. print "\n[MyShPrombt] device : " + self.device + "\n"
      125. if self.device is not None:
      126. if self.device == "dev1":
      127. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20dimDown&room=HUEDevice'")
      128. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20dimDown&room=HUEDevice'")
      129. def hueUp(self):
      130. cur = self["myMenu"].l.getCurrentSelection()
      131. self.device = cur[1]
      132. self["device"].setText(cur[0] + " " + cur[6])
      133. print "\n[MyShPrombt] device : " + self.device + "\n"
      134. if self.device is not None:
      135. if self.device == "dev1":
      136. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20hueUp&room=HUEDevice'")
      137. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20hueUp&room=HUEDevice'")
      138. def hueDown(self):
      139. cur = self["myMenu"].l.getCurrentSelection()
      140. self.device = cur[1]
      141. self["device"].setText(cur[0] + " " + cur[7])
      142. print "\n[MyShPrombt] device : " + self.device + "\n"
      143. if self.device is not None:
      144. if self.device == "dev1":
      145. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice8=set%20HUEDevice8%20hueDown&room=HUEDevice'")
      146. self.prombt("wget -q -O- 'http://192.168.178.58:8083/fhem?cmd.HUEDevice2=set%20HUEDevice2%20hueDown&room=HUEDevice'")
      147. #######################################################################################################################################################
      148. def prombt(self, com):
      149. print com
      150. container = eConsoleAppContainer()
      151. container.execute(com)
      152. def cancel(self):
      153. print "\n[MyShPrombt] cancel\n"
      154. self.close(None)
      155. ###########################################################################
      156. def main(session, **kwargs):
      157. print "\n[MyShPrombt] start\n"
      158. session.open(MyShPrombt)
      159. ###########################################################################
      160. def Plugins(**kwargs):
      161. return PluginDescriptor(
      162. name="FHEM Haussteuerung",
      163. description="Haussteuerungssystem",
      164. where = PluginDescriptor.WHERE_PLUGINMENU,
      165. icon="fhc.png",
      166. fnc=main)
      Alles anzeigen
      Habe soeben festgestellt das die Box abstürtzt wenn ich z,b auf "WZ Rollo Rechts" gehe und "OK " drücke. Liegt daran das in der list für Rollos ja nur AUF und AB gibt.

      Dieser Beitrag wurde bereits 12 mal editiert, zuletzt von emilio20 ()

    • Hallo
      ich möchte gernen das Plugin so umbauen das ich links eine Auswahl habe
      z,B

      1. Philips HUE
      2. WZRollo Sofa"
      3. WZ Rollo Hof"
      4. "WZ Rollo Balkon


      und in einem weitern Menü rechts die unterschiedlichen Funktionen angezeift werden.

      z.b

      Bei Philips HUE
      1. Hell
      2.Dunkel
      3.Farbe ändern
      4........

      Es scheidert aber schon am aufbau des Skin.
      Mit welchem Programm kann ich das Skin erstellen um die größe und Position angezeigt wird.
      Wie kann ich das Plugin simulieren damit ich nicht jedes mal auf der Box testen muss ?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von emilio20 ()