@drombo Hey, ich gerade 0 Freizeit, um selbst daran weiterzuarbeiten, aber hier ein paar Infos.
Also ich hab mir den Traffic damals angeschaut. Türsteuerung geht über MQTT, da läuft ein Client auf dem avlink, der die Nachricht dann per 2 Draht Bus an die Türklingel weitergibt. Die MQTT Nachrichten für Türschloss aufmachen und Kamera aktivieren kommen aus der App und laufen über deren Server, wenn du den jeweiligen Button drückst. Das Videosignal kommt über einen rtmp Stream, wie wir schon im Webinterface des avlink gesehen haben. Den Bus habe ich nicht abgehört, dafür habe ich kein Equipment.
Wenn jemand an der Tür klingelt, wird die Kamera aktiviert und Video + Klingelsignal auf dem Bus gesendet. Wenn der avlink ein Signal aufnimmt wandelt und encoded er das Videosignal für den rtmp Stream und startet einen SIP Anruf über deren Server an die App. Ein Frame wird zusätzlich noch für die verpassten Klingelversuche auf deren Server und lokal abgespeichert. Wie genau das Abläuft, weiß ich nicht. Im Web Interface gibt es ja Settings für rtmp oder P2P fürs Video. Wenn ich mich richtig erinnere, wird die SIP Verbindung WebRTC-mäßig aufgebaut mit TURN+STUN+ICE....oder so. Ob die SIP und Videoverbindung am Ende P2P oder komplett über deren Server läuft, weiß ich nicht.
Auf jeden Fall kann man jetzt hier auf 2 Wege weitermachen:
-
Reverse Engineering der Firmware + Schreiben von Open Firmware mit OpenIPC + Selbst Hosten des SIP, rtmp und MQTT Servers + images für die verpassten Klingelversuche lokal abspeichern
-
Weiterverwenden derer Lösung mit deren Server und App + draufschalten via (neuen) iobroker plugins. (ich kenn mich 0 aus mit iobroker)
Variante 2 ist viel einfacher:
- MQTT Server, SIP Server und rtmp Stream Addresse auslesen
- Traffic mitschneiden, um MQTT messages für Kamera aktivieren und Türschloss öffnen zu kopieren (u.a. für authentication header)
- Über ein zweites Handy einen neuen Account in der App erstellen und davon die Login Daten kopieren und die App wieder löschen (für SIP und MQTT Server login Daten)
In beiden Fällen muss ein plugin her, das folgendes kann:
- Tür über MQTT Befehle mit Buttons zu steuern (video ohne eingehenden Anruf aktivieren + Türöffner betätigen)
- SIP client bereitstellen, um Anrufe anzunehmen (Mikro dann über Browser am PC oder Integration mit IOS/Android permissions in einer iobroker App)
- Fenster, das den rtmp stream anzeigt integrieren
- Bilder von verpassten Klingelversuchen lokal oder von deren Server abspeichert/herunterlädt
- eine WebRTC Komponente beinhaltet, damit damit über TURN+STUN+ICE eine Verbindung aufgebaut werden kann, wenn man keine öffentliche IPv4/v6 hat (entweder zuhause hinter CGNAT oder im Mobilfunk, wo i.d.R. alle eingehenden Verbindungen ohne aktive session geblockt werden (Halbwissen))
Variante 1 wäre cooler, aber das braucht echt Zeit und Erfahrung.
Edit 1: Videosignal kommt über den TW9900...weiß nicht, ob der direkt an Spezialpins des SoC angebunden ist, oder das I2C oder UART ist und man direkt über /dev abzwacken kann.
Edit 2: Achso und wer den SPI flash auslesen will, kann das entweder über nen CH341a mit entsprechenden SOP8 Adapter machen (+1.8V Adapter) oder über den 3 Pin Stecker auf dem daughterboard ne UART Verbindung zum u-boot aufbauen und von dort den Chip auslesen. (Stecker ist ein 3 Pin Molex Picoblade, Pinout habe ich vergessen, kann man einfach nachmessen)