Mes recherches pour le panneau de contrôle physique d'une maison intelligente

Il y a très longtemps, j'ai eu l'idée d'installer un panneau de contrôle, situé à côté de la porte d'entrée à l'intérieur de l'appartement / maison.


Il existe plusieurs options pour mettre en œuvre cette idée:


  • Écran tactile opérateur PLC
  • tablette;
  • écran tactile connecté à un micro-ordinateur.


Une exigence supplémentaire qui limitait immédiatement le choix de l'appareil: l'image de la caméra externe devrait s'afficher automatiquement sur le panneau de commande lorsque le détecteur de mouvement est déclenché (et uniquement en présence de personnes à domicile).


1. Choix d'un appareil


Une fois les exigences clairement formulées, les iPads que je ne savais pas contrôler de l'extérieur ont immédiatement disparu (c'est dommage car ils ont un grand choix de supports muraux) et un appareil IHM comme Nextion , car l'image de la caméra ne peut pas être affichée sur eux.



L'une des options pour l'iPad Wallmount de Loxone


Et bien que des appareils spécialisés soient apparus sur le marché maintenant, tels que:



Cependant, le problème avec le contrôle externe de ces appareils, si je comprends bien, reste également et n'est pas complètement résolu.


En plus de la partie programme du panneau, une autre partie importante pour moi est l'absence de «ferme collective» lors de la fixation physique de ce panneau au mur, ce qui signifie connecter au moins un câble pour alimenter l'appareil et une boîte de jonction de montage dans le mur d'une taille suffisante, sur le site d'installation de ce panneau, pour caché placement du panneau d'alimentation.



Boîte de montage


2. L'influence du «Black Friday» sur le choix


Quand je me suis de nouveau souvenu de mon idée à la veille du Black Friday 2019, j'ai décidé d'acheter quelque chose de peu coûteux pour les tests. Je ne voulais pas me soucier de souder et de connecter l'écran tactile au Raspberry Pi, et le choix s'est porté sur la tablette Amazon Fire 7 pour 29,99 $ (environ 1700 ₽). J'ai pensé que dans l'atelier de baguette, il serait possible de faire le cadre approprié de la bonne taille pour placer la tablette sur le mur.



Team Win Recovery Project (TWRP) sur la tablette Amazon Fire 7


De plus, en suivant les instructions trouvées sur la ressource populaire xda-developers.com, j'ai réussi à déverrouiller par programme le chargeur de tablettes Fire 7 et à installer TWRP sans démontage physique.



En cours de déverrouillage de Fire 7 (2019, Mustang)


Je tiens à noter que l'instruction semblait initialement intimidante, mais en conséquence - tout y est décrit de manière assez transparente. Comme je n'avais initialement pas prévu d'utiliser Fire OS , j'ai installé une distribution Android LineageOS propre sans applications supplémentaires et sans services Google, c'est-à-dire sans installer GApps.



LineageOS sur Amazon Fire 7 Tablet (2019, mustang)


Je voulais obtenir exactement un appareil propre avec un minimum de programmes qui n'est lié à aucun compte.


3. Télécommande via ADB


Comme j'avais une tablette Android enracinée (avec un accès complet) sur mes mains, il ne devrait y avoir aucun problème avec le choix des programmes.
Cependant, je voulais utiliser certains outils standard et j'ai donc opté pour ADB . Cela fonctionne sur tous les appareils Android où cette fonctionnalité n'a pas été intentionnellement bloquée par le fabricant - il suffit de cliquer plusieurs fois sur l'élément de menu «Numéro de build» et un nouvel élément de menu «Pour les développeurs» s'ouvrira, où tous les paramètres seront définis.


Étant donné que je devais lire le flux vidéo à partir de la caméra IP (dans mon cas, RTSP , j'avais besoin d'un lecteur VLC et également de Google Chrome pour afficher en plein écran le panneau d'accueil intelligent. Pour effectuer les manipulations nécessaires avec la tablette depuis le terminal de l'ordinateur, exécutez les commandes suivantes.


Installez l'application sur la tablette via la ligne de commande:
adb install VLC.apk
Allumez / éteignez la tablette via la ligne de commande:
adb shell input keyevent KEYCODE_POWER
Démarrez la diffusion depuis la caméra via la ligne de commande:
adb shell am start -a android.intent.action.VIEW -d rtsp://login:pass@192.168.15.21:88/videoMain -t video/mp4
Via la ligne de commande, lancez le panneau de configuration de la maison intelligente dans le navigateur:
adb shell am start -a android.intent.action.VIEW -d http://192.168.15.10:8123/lovelace/default_view


Pour fonctionner correctement, j'ai défini les paramètres de l'écran étendu - lorsque les panneaux de contrôle sont complètement masqués.



Configurer LineageOS


Et bien sûr, j'ai désactivé le verrouillage de l'écran - sans cela, il est difficile d'automatiser quelque chose.



Configurer LineageOS


Voici un petit hack de vie car vous pouvez trouver une liste de toutes les applications installées et des commandes pour les lancer. Pour commencer, connectez-vous à la console:
adb shell
puis faites:
pm list packages | sed -e "s/package://" | while read x; do cmd package resolve-activity --brief $x | tail -n 1 | grep -v "No activity found"; done
Cela listera tous les programmes:



Exécution d'une commande pour afficher tous les programmes sur l'appareil


Les informations obtenues peuvent être utilisées à votre discrétion et, par exemple, démarrer le chronomètre:
adb shell am start -a android.intent.action.VIEW -d -n com.android.deskclock/.DeskClock


4. Assistant à domicile


Tout ce qui précède n'était qu'une préparation pour automatiser l'affichage de la caméra et du panneau de commande du logiciel sur l'écran de la tablette. J'ai deux options de caméra au-dessus de la porte d'entrée à différents endroits:


  1. Caméra Hikvision DS-2CD2463G0-IW avec capteur de mouvement intégré.
  2. La caméra dôme est associée à un capteur de mouvement à micro-ondes caché au-dessus du plafond suspendu du couloir d'accès et connectée au contrôleur Ethernet multifonction MegaD-2561 . Le capteur de mouvement n'est pas visible à l'œil nu, mais il fonctionne. La caméra est une installation ordinaire et non cachée.

Vous devez d'abord activer ADB sur le réseau:



Configurer LineageOS


Après cela, la tablette est prête pour la télécommande.


Depuis que j'utilise Hass.io , j'ai utilisé l'add-on ADB spécial - Android Debug Bridge , qui vous permet de contrôler tout appareil prenant en charge le contrôle ADB. Dans la configuration de ce module complémentaire, il a indiqué son seul appareil:


 { "devices": [ "192.168.15.24" ], "reconnect_timeout": 90 } 

Après cela, c'est un peu étrange, mais tous ces appareils sont configurés dans Home Assistant comme androidtv .


configuration.yaml
 media_player: - platform: androidtv name: Amazon Fire 7 host: 192.168.15.24 adb_server_ip: 127.0.0.1 

La dernière étape consiste à enregistrer l'automatisation, qui affiche la caméra sur l'écran de la tablette, puis ferme l'application, puis affiche le panneau de configuration de Home Assistant et la ferme également après un certain temps:


automations.yaml
 ################################################### # # #  android  # # # ################################################### - alias: Amazon Fire 7 Mikhail trigger: - platform: state entity_id: binary_sensor.kamera_u_liftov_pir_alarm from: 'off' to: 'on' condition: - condition: state entity_id: device_tracker.7c_xx_5c_b5_xx_1b # state: 'home' action: - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: input keyevent KEYCODE_POWER - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: am start -a android.intent.action.VIEW -d rtsp://login:pass@192.168.15.21:88/videoMain -t video/mp4 - delay: '00:00:30' - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: input keyevent KEYCODE_APP_SWITCH - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: input keyevent DEL - delay: '00:00:01' - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: am start -a android.intent.action.VIEW -d http://192.168.15.10:8123/lovelace/default_view - delay: '00:00:10' - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: input keyevent KEYCODE_APP_SWITCH - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: input keyevent DEL - delay: '00:00:01' - service: androidtv.adb_command data: entity_id: media_player.amazon_fire_7 command: HOME 

Le résultat qui en résulte n'est pas encore à la porte, mais sur le lieu de travail:



Vue arriere


J'ai également supprimé le panneau en action, mais je ne pouvais pas comprendre comment couvrir toutes les données personnelles sur la vidéo, et il y en a eu beaucoup, donc je n'apporte que la vue arrière :)


Résumé


Il a été possible de créer un panneau de commande physique avec les caractéristiques spécifiées. Des principaux coûts - seulement une tablette peu coûteuse. Il reste à résoudre le problème avec une installation de qualité sur le lieu d'utilisation, mais c'est déjà un sujet plus constructif.


Publié par: Mikhail Shardin ,
4 janvier 2020

Source: https://habr.com/ru/post/fr482800/


All Articles