PHC Remote: neue iOS App, etwas Hilfe benötigt

  • jtschndr
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
04 Juli 2026 15:54 - 04 Juli 2026 15:55 #1 von jtschndr
Hallo zusammen,

ich möchte euch ein kleines, aber inzwischen sehr brauchbares Projekt vorstellen: PHC Remote, eine native iOS-App für iPhone und iPad, mit der eine PEHA/Honeywell-PHC-Anlage direkt im lokalen Netzwerk gesteuert werden kann.

github.com/jtschneider/PHCRemoteControl

Die App ist größtenteils vibecoded mit Claude und Codex, und als moderner Ersatz für die alte offizielle PHC Home Control iOS-App entstanden.
Wichtig vorweg: Es gibt keinen Cloud-Dienst, keinen Account und keine fremden Server. Die App spricht direkt mit dem STM v3 im LAN.


Warum? Zweierlei, erstmal wollte ich lernen, wie man eine ganz einfache iOS App entwickelt. Zweitens: Die offizielle App funktioniert grundsätzlich, fühlt sich auf aktuellen Geräten aber deutlich gealtert an und ist auf größeren Displays nicht besonders angenehm. Ich wollte eine schlichte, schnelle SwiftUI-App, die die vorhandene Installation automatisch ausliest und danach die wichtigsten Dinge zuverlaessig steuert: Licht, Steckdosen, Rollläden, Zentralbefehle.
Aus einem Wochenendprojekt ist dann etwas mehr Reverse Engineering geworden.

Dabei sind di wichtigsten Dinge schon implementiert:
  • Verbindung zum STM im lokalen Netzwerk
  • Projekt vom STM laden, ZIP extrahieren und `project.ppfx` parsen
  • Projekt lokal cachen, damit die App beim nächsten Start sofort da ist
  • Stockwerke anzeigen
  • Geräte nach Kategorien gruppieren, z. B. Licht, Rolllaeden, Steckdosen
  • Lichter schalten
  • Steckdosen schalten
  • Zustand von Licht/Steckdosen pollen, einmal pro Ausgangsmodul alle 2,5 Sekunden
  • physische Schalter werden dadurch in der App nachgezogen
  • Rollläden hoch/runter/stoppen
  • Zentralbefehle bzw. virtuelle Eingangsaktionen als Buttons
  • Favoriten anlegen und sortieren
  • iPhone-Layout mit klassischer Navigation
  • iPad-Layout mit Seitenleiste und Detailansicht
  • Deutsch/Englisch für die App-Oberfläche
  • Demo-Modus ohne Hardware

Auf der getesteten Anlage gilt:
  • langer Tastimpuls auf `senken` startet Abwärtsbewegung,
  • langer Tastimpuls auf `heben` startet Aufwärtsbewegung,
  • kurzer Tastendruck stoppt die Bewegung.
Das ist etwas näher an der realen Verdrahtung der Anlage und vermeidet, dass
die App die Logik aus `project.tpfx` komplett nachbauen muss.

Es fehlt also noch für eine vollständige Implementierung:
  • Dimmer
  • Jalousie, insbesondere Lamellenposition

Wer eine PHC-Anlage mit Dimmer und oder Jalousie hat und einen kurzen Mitschnitt der offiziellen App liefern kann, wäre sehr hilfreich.


Ich komme mit zwei Dingen auf euch zu:
  1. Hat jemand eine PHC anlage mit Dimmer und Jalousie und die Muße seine app abzuhören, um die Funktionalität zu vervollständigen?
  2. Hat jemand einen Apple Developer Konto unter dem sie meine App auf dem App Store veröffentlichen will? Ich will gerne keine 99 EUR / Jahr zahlen, um die App zu veröffentlichen... Es sei denn es würden sich ein paar Spenden finden 
Das Projekt beruht auf drei Quellen, die unterschiedliche Fragen beantwortet haben.

Warnung: Spoiler!


______
Die App ist eine native SwiftUI-App für iOS 17+:
- SwiftUI für iPhone und iPad
- @Observable Store für App-Zustand und Befehle
- PHCClient als Transport-Abstraktion
- STMv3Client für die echte XML-RPC-Kommunikation
- MockPHCClient für Demo-Modus und Entwicklung
- ZIPFoundation für die Projekt-ZIP-Datei
- XcodeGen-Projekt
Der Code ist Open Source unter AGPL-3.0


Viele Grüße

PS. Ich denke mit dem Quellcode kann man sehr leicht einen analoge App für Android schreiben.
 
Letzte Änderung: 04 Juli 2026 15:55 von jtschndr.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
28 Aug. 2026 08:11 #2 von Arne
Moin,
sehr cool, mit dem Dimmer kann ich helfen.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
27 Sep. 2026 09:49 #3 von Col
Das klingt sehr spannend. Bei mir läuft im Haus auch alles über PHC, auch zwei Phasenabschnittdimmer...
Kann man deine App ausprobieren ohne dass man sie aus dem Appstore laden muss?
Aber eine Kommunikation zum Home Assistant ist nicht möglich, nehme ich an. Da braucht man dann doch das Modul, das Jo hier im Forum selbst gebaut hat oder?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • jtschndr
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
28 Sep. 2026 10:43 - 28 Sep. 2026 10:47 #4 von jtschndr
Hallo Col und Arne, danke für euer Interesse!

Zu den drei Punkten:

1. Dimmer
Dimmer unterstützt die App noch nicht, weil ich selbst keine habe und nichts testen konnte. Das Gleiche gilt für Jalousie.
Wenn ihr mir kurz helfen wollt, dann müsstet ihr mit einem iPhone den Verkehr zwischen der alten App und der STM mitschneiden. Dazu muss man ein Proxyserver dazwischen laufen lassen.
Dh grob der Fluss der Information ist: iPhone App -> PC -> STM, und der PC/Mac schneidet mit.Aus der PHC-Systemsoftware konnte ich die Dimmer-Befehle schon größtenteils entschlüsseln. Es fehlen aber noch zwei Details, die man nur an einem echten Dimmer sieht. Wenn du Lust hast, könntest du mit einem Mitschnitt helfen. Das dauert etwa 2 Minuten und du brauchst dafür einen Mac oder PC im selben WLAN:
Code:
brew install mitmproxy # MAC Nutzer, die homebrew installiert haben pip install mitmproxy # WINDOWS Benutzer, die Python installiert haben # der eigentliche Befehl: mitmweb --listen-port 8080 --set validate_inbound_headers=false -w dimmer.flows

Die Option validate_inbound_headers=false ist nötig, weil das STM einen fehlerhaften Header schickt, den mitmproxy sonst ablehnt.Danach auf dem iPhone unter Einstellungen → WLAN → (i) → Proxy konfigurieren → Manuell die IP des Rechners und Port 8080 eintragen. Weil das STM unverschlüsseltes HTTP spricht, brauchst du kein Zertifikat. Dann in der offiziellen PHC-App einen Dimmer bedienen: einschalten, ausschalten, heller, dunkler und wenn möglich einen festen Wert setzen. Anschließend dimmer.flows speichern und den Proxy auf dem iPhone wieder ausschalten.Wichtig: Der Mitschnitt enthält auch deine Projektdatei mit allen Raum- und Gerätenamen. Bitte schick mir also einfach nur die sendTelegram-Aufrufe, die beim Dimmen entstehen.
Dafür müsst ihr einfach nur den Dimmer betätigen und den jeweiligen Mitschnitt mir zukommen lassen. Am besten folgt ihr einem Protokoll; z.B. An, Heller, Dunkler, aus; und teilt mir eben jenes Protokoll mit, damit die Zuordnung von Befehl und Effekt passt.

2. App ohne App Store ausprobieren
Ja, das geht. Du kannst die App selbst kompilieren, dafür brauchst du einen Mac mit Xcode:
Code:
brew install xcodegen git clone https://github.com/jtschneider/PHCRemoteControl.git cd PHCRemoteControl xcodegen generate open PHCRemoteControl.xcodeproj

In Xcode dann unter Target → Signing & Capabilities deine Apple-ID als Team eintragen. Eine kostenlose Apple-ID reicht. Die Bundle-ID musst du auf etwas Eigenes ändern, z. B. de.deinname.phcremote. Danach das iPhone per Kabel verbinden, als Ziel auswählen und ⌘R drücken. Auf dem iPhone musst du vorher den Entwicklermodus aktivieren (Einstellungen → Datenschutz & Sicherheit).Mit einer kostenlosen Apple-ID läuft die App nur 7 Tage und muss danach neu installiert werden. Ohne STM kannst du sie auch im Simulator im Demo-Modus ausprobieren.
Das heißt auch leider, dass selbst wenn ich die App kostenlos auf dem App Store anbiete, fielen mir pro Jahr 99 EUR Kosten an (was sich auch mal ändern kann), um mein persönliches Apple Konto in ein Developer Konto hochzustufen.

3. Home Assistant
Da hast du recht, das geht mit der App nicht. Sie ist eine reine iPhone-App und läuft nur, solange sie geöffnet ist. Meine App ist also nur eine Modernisierung der sehr alten App "PhcControl". Sie kann also nicht dauerhaft auf einem Server laufen, und Home Assistant könnte sie nicht erreichen.


Viele Grüße
Jan
Letzte Änderung: 28 Sep. 2026 10:47 von jtschndr. Begründung: Formattierung

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
28 Sep. 2026 12:03 #5 von Col
Einen Mac habe ich leider nicht, nur ein Ipad und Iphone. Aber ich will zunächst mal versuchen dir das Protokoll zu erzeugen... Allerdings habe ich da bei deinem Befehl schon eine Fehlermeldung erhalten.
Python 3.14.7 (tags/v3.14.7:823f032, Aug 5 2026, 10:51:32) [MSC v.1944 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> pip install mitmproxy
File "<python-input-0>", line 1
pip install mitmproxy
^^^^^^^
SyntaxError: invalid syntax
>>>
oder habe ich etwas falsch gemacht?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • jtschndr
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
28 Sep. 2026 12:16 - 28 Sep. 2026 12:18 #6 von jtschndr
Kein Problem, das passiert schnell! Du hast den Befehl im Python-Interpreter eingegeben (erkennbar an
Code:
>>>
), dort funktionieren nur Python-Befehle. PIP ist ein python package manager, mit dem man extra software installieren kann. Ich habe aber eben gesehen, dass mitmproxy für Windows auch einen Installer veröffentlicht. Also geht es einfacher auch ganz ohne Python:

1. mitmproxy installieren
Auf www.mitmproxy.org/ den Windows-Installer herunterladen und installieren. Danach ein neues PowerShell-Fenster öffnen (Startmenü -> "PowerShell"). Ein Fenster, das schon vor der Installation offen war, findet den Befehl noch nicht.

2. Mitschnitt starten
Code:
mitmweb --listen-port 8080 --set validate_inbound_headers=false -w dimmer.flows

Beim ersten Start fragt die Windows-Firewall nach. Bitte Zugriff zulassen (private Netzwerke), sonst kann das iPhone den PC nicht erreichen. Im Browser öffnet sich eine Übersicht unter
Code:
http://127.0.0.1:8081
, dort siehst du live, was mitgeschnitten wird.

3. IP-Adresse des PCs herausfinden
In einem zweiten PowerShell-Fenster:
Code:
ipconfig

Die IPv4-Adresse deines WLAN- oder LAN-Adapters (z. B.
Code:
192.168.178.XXX
) auf dem iPhone unter Einstellungen → WLAN → (i) → Proxy konfigurieren → Manuell eintragen, Port
Code:
8080
. Dein iPhone muss im gleichen WLAN Netzwerk sein.

4. Dimmer bedienen und beenden
In der PHC-App den Dimmer bedienen: ein, heller, dunkler, aus und wenn möglich einen festen Wert setzen. Danach in PowerShell mit Strg+C beenden und den Proxy auf dem iPhone wieder ausschalten. Die Datei
Code:
dimmer.flows
liegt in dem Ordner, in dem PowerShell gestartet wurde, normalerweise
Code:
C:\Users\<dein Name>
.

Vielen Dank fürs Ausprobieren!
Letzte Änderung: 28 Sep. 2026 12:18 von jtschndr.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • jtschndr
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
28 Sep. 2026 12:20 - 28 Sep. 2026 12:23 #7 von jtschndr
wie gesagt, die Datei enthält auch dein persönliches STM Projekt und damit dein ganzes Layout vom Haus. Das brauche und will ich alles gar nicht wissen. Daher sende mir nur die ganzen Befehle die vom Typ `sendTelegram` sind. Am besten schneidest du dann nur den verkehr mit, wenn du die PhcControl app öffnest und einen dimmer betätigst: an, heller, dunkler, aus (evtl auch einen festen wert setzen). dann den proxy wieder ausmachen und die Datei dürfte dann nur die befehle enthalten, die diesen vier (fünf) Effekten entspricht.
Letzte Änderung: 28 Sep. 2026 12:23 von jtschndr.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
28 Sep. 2026 12:47 #8 von Col
Das hat wohl geklappt, zumindest wurde was mitgeschnitten. Ich muss die Datei suchen...zumindest in c:\users\...habe ich sie noch nicht gefunden

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • jtschndr
  • Autor
  • Offline
  • Junior Mitglied
  • Junior Mitglied
Mehr
28 Sep. 2026 12:48 #9 von jtschndr
die Datei heißt `dimmer.flows` und du kannst sie mit einem Text Editor öffnen

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
28 Sep. 2026 12:57 - 28 Sep. 2026 15:03 #10 von Col
Ok habe die Datei gefunden. Ehrlich gesagt kann ich auch mit dem Editot nichts damit anfangen. Ich sende sie dir wenn das geht als PN
Letzte Änderung: 28 Sep. 2026 15:03 von Col.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
04 Okt. 2026 12:33 #11 von Col
Hast du mit dem Anhang meiner email was anfangen können? Habe nichts mehr von dir gehört…

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 1.450 Sekunden