Entwicklung eines PHC-Bindings für OpenHAB
- Jürgen
- Autor
- Offline
- Moderator
da PEHA ja eine eigene (teure) Visualisierung hat und wohl auch verkaufen will, werden die da kein großes Interesse haben. (ODER PEHA?) Fakt ist, dass die PEHA-Visualisierung für Privatpersonen zu teuer ist.
Ein OpenHAB-Binding wäre wünschenswert. (Und einen Raspberry habe ich auch noch 'rumliegen).
Vielleicht erklärt sich PEHA bereit Dir eine V3-Steuereinheit "zu leihen"??
Gruß
Jürgen
"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Fossibaer58809
- Offline
- Expert Boarder
- Beiträge: 98
- Dank erhalten: 20
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas
- Offline
- Platinum Boarder
- Beiträge: 270
- Dank erhalten: 56
Ich sehe das anders: In "professionellen" Installationen, d.h. Industrie, Büros, Hallen etc. wird sicherlich die PEHA-Visualisierung eingesetzt. Dort will wohl niemand mit RPi, Linux, OpenHAB etc. herumspielen.da PEHA ja eine eigene (teure) Visualisierung hat und wohl auch verkaufen will, werden die da kein großes Interesse haben. (ODER PEHA?) Fakt ist, dass die PEHA-Visualisierung für Privatpersonen zu teuer ist.
Für die meisten Privatanwender ist die Visualisierung zu teuer, einige davon sind aber bereit den aufwendigeren Weg über OpenHAB etc. zu gehen.
Ich glaube kaum, dass wegen einem OpenHAB-Binding oder einer Open-Source Kommunikationssoftware PEHA auch nur eine Visualisierung weniger verkauft...
Ich kann Dir gerne meine EXE des PHC-Gateway geben. Das ist zwar noch nicht ganz perfekt, aber es tut schon richtig gut.Ein OpenHAB-Binding wäre wünschenswert. (Und einen Raspberry habe ich auch noch 'rumliegen).
Da Du schon OpenHAB auf einem anderen System am laufen hast, kannst Du das weiterhin verwenden. Du musst nur noch einen MQTT-Broker auf einem der beiden Systeme installieren, da ich mit OpenHAB per MQTT kommuniziere. Ich habe Mosquitto am laufen und der braucht noch nicht mal konfiguriert werden... Auf dem RPi würde dann mein PHC-Gateway laufen, das per RS232 oder RS232 over IP mit der Steuerung spricht.
Da hätte ich nichts dagegen Aber man könnte wahrscheinlich zur Not auch de Integrationsserver der Visualisierung verwenden.Vielleicht erklärt sich PEHA bereit Dir eine V3-Steuereinheit "zu leihen"??
Der braucht keine Lizensierung.
Andreas
PHC STM V2, EMD,AMD,JRM und DIM-Module, Wind, Regen und Sonnen-Sensor, Visualisierung mit OpenHAB
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas
- Offline
- Platinum Boarder
- Beiträge: 270
- Dank erhalten: 56
Für OpenHAB wäre sicherlich ein PHC-Binding auf Basis XML-RPC am besten.Dann sollte ich mir das mal genauer ansehen und prüfen was für ein Aufwand für ein PHC Binär und XML-RPC BiNein erforderlich ist.
Für die Steuerungen V2 und V3 könnte man dann eine zusätzliche kleine Software machen, die nach außen die notwendigen XML-RPC-Befehle unterstützt und diese ins binäre Format umsetzt - nicht anderes, als das, was der Integrationsserver macht!
Ich denke nicht, dass das schwer ist.
Für das OpenHAB-Binding bräuchte man dann aber gute Java-Kenntnisse und auch viel Einarbeitungsaufwand in die diversen Frameworks und Bibliotheken, die da verwendet werden. Da bin ich vorerst ausgestiegen
Aber ich würde mich an einer gemeinsamen Entwicklung beteiligen. Ich habe auch schon im TCP/IP-Binding von OpenHAB einen Fehler gefunden und korrigiert, und das ganz ohne Java-Erfahrung.
Was haltet ihr davon?
Andreas
P.S.
Das ist die Schnittstelle der Kommunikationsschicht in einem PHC-Gateway - wie gesagt, binäres Protokoll, aber alle benötigten Befehle für eine Visualisierung (damit muss man ja z.B. nicht unbedingt eine Firmware aktualisieren müssen etc, auch wenn die fehlenden befehle (Firmwareupdate, Uhr setzen etc.) nur Fleissarbeit sind...)
/********************************************************************************************/
/* PHC (De)/(Re)/Initialize */
/********************************************************************************************/
int PHC_Initialize(BYTE Port); // RS232
int PHC_Initialize(char *Address,WORD Port); // TCP/IP
int PHC_ReInitialize();
int PHC_DeInitialize(void);
BOOL PHC_ConnectionError();
/********************************************************************************************/
/* IMD-Commands */
/********************************************************************************************/
int PHC_IMD_State_Original (BYTE STM,BYTE DeviceAddr, WORD *StatesOutput,WORD *StatesInput); // States bit coded
int PHC_IMD_State (BYTE STM,BYTE DeviceAddr, BYTE *StatesOutput,BYTE *StatesInput); // States[16]
int PHC_IMD_Event_OnGreater0 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel);
int PHC_IMD_Event_OnGreater1 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel);
int PHC_IMD_Event_OnGreater2 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel);
int PHC_IMD_Event_OffLess1 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel);
int PHC_IMD_Event_OffGreater1(BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel);
int PHC_IMD_Event_Off (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel); // not for all modules...
/********************************************************************************************/
/* OMD-Commands */
/********************************************************************************************/
int PHC_OMD_State_Original (BYTE STM,BYTE DeviceAddr, BYTE *StatesOutput); // States bit coded
int PHC_OMD_State (BYTE STM,BYTE DeviceAddr, BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOn (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOnAndLock (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOffAndLock (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_Toggle (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_Unlock (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOnAfterDelay (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Delay,BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOffAfterDelay (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Delay,BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOnForTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time, BYTE *StatesOutput); // States[8]
int PHC_OMD_SwitchOffForTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time, BYTE *StatesOutput); // States[8]
int PHC_OMD_ToggleAfterDelayLocked(BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time, BYTE *StatesOutput); // States[8]
int PHC_OMD_ToggleForTimeLocked (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time, BYTE *StatesOutput); // States[8]
int PHC_OMD_Lock (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_LockForCurrentTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
int PHC_OMD_AddTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time, BYTE *StatesOutput); // States[8]
int PHC_OMD_SetTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time, BYTE *StatesOutput); // States[8]
int PHC_OMD_CancelTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[8]
/********************************************************************************************/
/* JRM-Commands */
/********************************************************************************************/
int PHC_JRM_State_Original (BYTE STM,BYTE DeviceAddr, BYTE *StatesOutput ); // States bit coded
int PHC_JRM_State (BYTE STM,BYTE DeviceAddr, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_Stop (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_ToggleRaisingOrOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_ToggleLoweringOrOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_Raising (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_Lowering (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_InchingOpen (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_InchingShut (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_LockPriority (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE PrioMask, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_UnlockPriority (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE PrioMask, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_SetPriority (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE PrioMask, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_ClearPriority (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio , BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_RaisingShutter (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time,WORD OffsetTime, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_RaisingBlinds (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time,WORD OffsetTime,WORD AdjustSlatesTime,BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_LoweringShutter (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time,WORD OffsetTime, BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_LoweringBlinds (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Prio ,BOOL SetPrio,WORD Time,WORD OffsetTime,WORD AdjustSlatesTime,BYTE *StateRaising,BYTE *StateLowering); // States[4]
int PHC_JRM_ChronometryDelayedOn (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time);
int PHC_JRM_ChronometryDelayedOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time);
int PHC_JRM_ChronometryOnForTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time);
int PHC_JRM_CancelChronometry (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Time);
/* Own commands */
int PHC_DIM_Own_Increase(BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Value,WORD Ticks,BYTE *StatesOutput); // States[4]
int PHC_DIM_Own_Decrease(BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Value,WORD Ticks,BYTE *StatesOutput); // States[4]
/********************************************************************************************/
/* DIM-Commands */
/********************************************************************************************/
int PHC_DIM_State_Original (BYTE STM,BYTE DeviceAddr, BYTE *StatesOutput,BYTE *Brightness); // States bit coded,Brightness[2]
int PHC_DIM_State (BYTE STM,BYTE DeviceAddr, BYTE *StatesOutput,BYTE *Brightness); // States[2],Brightness[2]
int PHC_DIM_SwitchOnMaxWithMemory (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_SwitchOnMaxWithoutMemory (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_SwitchOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_ToggleMaxAndOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_ToggleMaxAndOffWithoutMemory(BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_DimOppositeDirection (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Ticks, BYTE *StatesOutput); // States[2]
int PHC_DIM_DimBrighter (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Ticks, BYTE *StatesOutput); // States[2]
int PHC_DIM_DimDarker (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,WORD Ticks, BYTE *StatesOutput); // States[2]
int PHC_DIM_StoreMemory (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_ToggleMemoryAndOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_RecallMemory (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_StoreMemory1 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_ToggleMemory1AndOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_RecallMemory1 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_StoreMemory2 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_ToggleMemory2AndOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_RecallMemory2 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_StoreMemory3 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_ToggleMemory3AndOff (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_RecallMemory3 (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel, BYTE *StatesOutput); // States[2]
int PHC_DIM_SetLightLevelAndTime (BYTE STM,BYTE DeviceAddr,BYTE DeviceChannel,BYTE Level,WORD Ticks,BYTE *StatesOutput); // States[2]
/********************************************************************************************/
/* SYSTEM-Commands */
/********************************************************************************************/
int PHC_SYSTEM_ActivateModulEvents(BYTE STM,BYTE NumDevices,BYTE DeviceClass[64],BYTE DeviceAddr[64]);
int PHC_SYSTEM_StartEventMonitoring(BYTE STM);
int PHC_SYSTEM_StopEventMonitoring(BYTE STM);
BOOL PHC_SYSTEM_GetEvent(BYTE *STM,BYTE *DeviceClass,BYTE *DeviceAddr,BYTE *NumData,BYTE *Data);
PHC STM V2, EMD,AMD,JRM und DIM-Module, Wind, Regen und Sonnen-Sensor, Visualisierung mit OpenHAB
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Fossibaer58809
- Offline
- Expert Boarder
- Beiträge: 98
- Dank erhalten: 20
ich haben Compiler und das Interface für die Tools entwickelt und sollte somit in der Lage sein diese Aufgabe zu lösen. Über Hilfe dabei würde ich mich freuen. Betreibe privat einen OwnCloud Server und einen SVN Server, so dass hier der Zugriff auf Quelltexte und Dokumentation gegeben ist.
Gruß
Michael
PS:Wie du bestimmt schon erkannt hast ist die Software V3.x komplett in Java geschrieben. Und da jedes Tool ein kleines Java Programm ist, kann mit den entsprechenden Schnittstellen auch jeder Java begabte eigene Tools erstellen. Doch benötige ich zur Herausgabe der Schittstelle wieder die Genehmigung von PEhA/Honeywell.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas
- Offline
- Platinum Boarder
- Beiträge: 270
- Dank erhalten: 56
Evtl. ein Grund warum ich noch die V2 Software verwende. Das Look &Feel fast aller Java- Programme ist m.E. nicht so toll. Und bei der Performance merkt man es auch. Ok, man merkt, dass ich Windows seit der 3.0 Beta programmiere...
Hast du auch mit der Entwicklung des Integrationsservers zu tun gehabt?
PHC STM V2, EMD,AMD,JRM und DIM-Module, Wind, Regen und Sonnen-Sensor, Visualisierung mit OpenHAB
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- ansgar75
- Offline
- Expert Boarder
- Stay hungry, stay foolish! - Steve Jobs
- Beiträge: 111
- Dank erhalten: 14
Ich bin jetzt nicht so der Programmiercrack eher der Praktiker und Anwender. Da ich aber bei mir IP Symcon am Laufen habe, könnte ich mich dann um die Anbindung an dieses System kümmern. Immerhin habe ja bereits die PEHA Wetterstation 940 WES dort erfolgreich eingebunden.
Grüße
Ansgar
Peha PHC V3 seit 2017 (vorher V2 seit 2009) im Neubau - MCC - JRM - EMD - AMD - DIM - UIM - FUI - Module
IP-Symcon Smarthome Software auf Intel NUC mit Ubuntu 20.04LTS (Einbindung von PHC tlw. über Webinterface der V3)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Andreas
- Offline
- Platinum Boarder
- Beiträge: 270
- Dank erhalten: 56
Hmmm. Die XML-RPC-Schnittstelle ist ja eigentlich die allgemeine Schnittstelle.Gut wäre es wenn eine universelle Schnittstelle geschaffen würde. Neben OpenHab gibt es ja noch eine Reihe anderer SmartHome Systeme wie FHEM, Symcon usw.
D.h mit dem Integrationsservers würde das auch mit der V2 und V1 gehen. Oder eben mit einer eigenen Software die dasselbe tut...
Mein PHC-Gateway wäre auch universell, da es MQTT unterstützt oder Telnet. Http könnte man auch machen.
PHC STM V2, EMD,AMD,JRM und DIM-Module, Wind, Regen und Sonnen-Sensor, Visualisierung mit OpenHAB
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- ansgar75
- Offline
- Expert Boarder
- Stay hungry, stay foolish! - Steve Jobs
- Beiträge: 111
- Dank erhalten: 14
Mein PHC-Gateway wäre auch universell, da es MQTT unterstützt oder Telnet. Http könnte man auch machen.
Symcon kann in jedem Fall über Telnet kommunizieren HTTP ginge auch. Bei FHEM sollte auch MQTT gehen (forum.fhem.de/index.php?topic=27532.0) so wie ich das sehe.
Gruß
Ansgar
Peha PHC V3 seit 2017 (vorher V2 seit 2009) im Neubau - MCC - JRM - EMD - AMD - DIM - UIM - FUI - Module
IP-Symcon Smarthome Software auf Intel NUC mit Ubuntu 20.04LTS (Einbindung von PHC tlw. über Webinterface der V3)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Jürgen
- Autor
- Offline
- Moderator
"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- ansgar75
- Offline
- Expert Boarder
- Stay hungry, stay foolish! - Steve Jobs
- Beiträge: 111
- Dank erhalten: 14
Passt.
Oftmals entwickelt sich eine neue Diskussion aus der bestehenden heraus.
Dafür hat man ja auch die Admins die das dann wieder schön ordnen
Grüße
Ansgar
Peha PHC V3 seit 2017 (vorher V2 seit 2009) im Neubau - MCC - JRM - EMD - AMD - DIM - UIM - FUI - Module
IP-Symcon Smarthome Software auf Intel NUC mit Ubuntu 20.04LTS (Einbindung von PHC tlw. über Webinterface der V3)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Jürgen
- Autor
- Offline
- Moderator
"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ricotchet
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Forum
- PHC-Forum
- Visualisierung
- Entwicklung eines PHC-Bindings für OpenHAB