Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Organisez vos comics, magazines et livres avec Komga

Si vous cherchez un bon moyen d’auto-héberger vos magazines, vos livres et bandes dessinées, ne cherchez plus, Komga est la solution !

Si les comics vous intéressent et que vous avez tout ça au format numérique, c’est forcement un peu galère pour organiser tout ça et s’y retrouver. Grâce à Komga vous pourrez vous sortir de ce pétrin et créer des bibliothèques pour vos BDs afin d’organiser totalement vos collections.

Komga est donc un serveur de comics / mangas open source et gratuit. Vous pouvez même y mettre vos magazine PDF ou vos livres. Il supporte les formats epub, pdf, cbz et cbr et une fois en place, vous profiterez d’une jolie d’une interface web responsive.

Organisez vos comics avec Komga

Vous pourrez ainsi organiser votre bibliothèque avec des collections et des listes de lecture, et même modifier les métadonnées de vos séries de BDs et de vos livres. Komga permet également d’importer automatiquement les métadonnées intégrées à ces fichiers et vous pouvez tout lire sans quitter votre navigateur via le lecteur web.

Gérez vos magazines avec Komga

D’ailleurs plusieurs modes de lecture sont dispo et vous pouvez même gérer plusieurs users avec un contrôle d’accès par bibliothèque, mais également des restrictions d’âge.

En plus de cela, il dispose d’une API REST et de nombreux outils et scripts développés par la communauté qui sont capables d’interagir avec Komga.

Vous pourrez, d’un clic, télécharger les fichiers à l’unité ou des séries entières de BDs entières et si vous avez des petits soucis de mémoire lors de vos imports, l’outil est également capable de détecter les fichiers en double et même les pages en double. Komga peut également importer automatiquement les BDs déposées dans un répertoire.

Stockez vos livres avec Komga

Le plus beau là-dedans, c’est que ça s’installe très facilement avec Docker Compose, ou lancé directement via le .jar fourni (java). Donc vous l’aurez compris, ça peut tourner sur un Windows, un Linux mais également un NAS.

Si vous voulez tester par vous-même, une démo est accessible ici : https://demo.komga.org/

  • Login: demo@komga.org
  • Password: komga-demo

Displaying multiple Fitbit accounts in Home Assistant using Azure Logic Apps

As our kids get older, they’ve started to develop an interest in having a wearable — and as parents, we’re happy to support this as it allows us to help have conversations around healthy behaviours, especially as the desire for screen time also increases.

Over the holidays, we all got kitted out with a variety of Fitbit wearables (not the fancy ones, just simple displays) — however I was left with a challenge, how can I get this data into Home Assistant so it can be displayed on our family dashboard?

Unfortunately, the native Fitbit integration only supports a single account, which wouldn’t work for us. While I found some methods to get the data into Fitbit using various hacks, I didn’t want to be doing too much customisation of my Home Assistant sensors in case a breaking change made it stop working.

I had seen various Power Automate solutions getting data from Fitbit with custom connectors, but unfortunately it would require a premium connector as I’d need to make calls to 4 separate Fitbit developer accounts.

I am lucky enough however to receive an Azure credit every month, and because Azure Logic Apps are similar to Power Automate — I was able to use the same approach to make it work. However, the solution ends up costing about 50c per week to run.

The solution

What I opted for, was to create a REST sensor in Home Assistant that would trigger an Azure Logic App workflow every 30 minutes to retrieve the data.

The workflow queries each person’s Fitbit developer account, retrieves the data I want (minutes and steps) and packages it up in an array.

The result is displayed in a Home Assistant dashboard like so:

(Don’t judge us, this screenshot was taken early in the morning.)

Getting access to your Fitbit data

I won’t go into the detail here, as this video contains everything you need to know for the process: Jon Does Flow: Fitbit Custom Connector for Power Automate — YouTube

In my scenario, I created 4 separate Azure logic apps custom connectors to perform the data retrieval.

The swagger of these connectors is as follows:

You can access the file from here.

Combining all accounts into a single set of data

The workflow is not the most elegant, but it works. Here is how it looks:

The scope for each person:

The response back to Home Assistant:

The full workflow can be downloaded from as an exported template.

Make note of where I have put in placeholder text such as <FITBIT ID> and <AZURE SUBSCRIPTION ID> and replace them with your own IDs.

Getting Home Assistant to retrieve the data

Over in Home Assistant we need to define the REST sensor. In this sensor we’ll need to include the URL from the Azure Logic App trigger, the frequency of updates (in seconds), as well as the JSON attributes being returned by the workflow:

The text of this sensor is available here.

Getting Home Assistant to separate the data

Unfortunately, when the data is returned from the Azure Logic App to Home Assistant, it will be a single blob with cascading arrays.

As I wanted to visualise these in a dashboard for each person, I needed to create separate sensors with their particular information as attributes. I used the following template structure for each person:

The text of this template is available here. Repeat as many times as you have defined in the workflow.

Displaying the data in Home Assistant

Finally, to make this present nicely I opted for the dual gauge custom card.

I also chose to display our photos and names in vertical stacks for a bit of personalisation but have omitted the code from here.

The text for these cards is available here.

And there you have it!

I also added the “last updated” data so we could see how current the displays where.

All the code for this solution is available from my GitHub repo.

Originally published at Loryan Strant, Microsoft 365 MVP.


Displaying multiple Fitbit accounts in Home Assistant using Azure Logic Apps was originally published in REgarding 365 on Medium, where people are continuing the conversation by highlighting and responding to this story.

Hack -Détournement de la passerelle Lidl silvercrest

Alors au départ, je voulais faire un article de tests sur les nouveaux produits Lidl dans la gamme domotique. Cependant, il en existe tellement et n’ayant pas la réactivité nécessaire, j’ai changé mon fusil d’épaule.

D’autant plus que tous les produits Lidl smart home silvercrest sont compatibles ZiGate ou avec les autres passerelles universelles.

Du coup, je suis plutôt parti sur un détournement de la passerelle.

Transformer la passerelle Lidl en ZiGate Ethernet !

L’objectif est bien entendu de faire POC (Proof Of Concept), de s’amuser mais en même temps de répondre à un besoin personnel.

 

Démontage et analyse

La première chose, quand on veut faire un détournement d’un objet, c’est de faire une analyse (ou reverse engineering) et pour cela, pas le choix, il faut démonter l’appareil pour observer ce qu’il contient.

Donc la première étape c’est de démonter la passerelle.

Le démontage n’est pas aisé, pas de vis mais des clips. Il faut alors « déclipper » le boitier mais très compliqué sans abimer (il y a un peu de colle je pense). Les non soigneux, s’abstenir 😉

Demontage_boitier_lidl

Une fois le capot enlevé, on va pouvoir analyser rapidement ce qu’il y a.

Demontage_lidl__zigbee_face

Commençons par la partie face :

En bleu : C’est le module Zigbee de chez tuya. le TYZS4 à base de Cortex-M4 EFR32MG1B232. Il permet de communiquer avec les objets en Zigbee.

En rouge : C’est le cerveau de la passerelle. Le Realtek RTL8196E. C’est lui qui va piloter le module Zigbee (par des commandes sur l’UART) et permettre la gestion complète de la passerelle.

En rose : C’est la mémoire RAM utilisée par le CPU. 32Mo de SDRAM. EM6AA160

En orange : C’est la mémoire flash utilisé par le CPU. 16Mo. GD25Q127

En bleu clair : C’est l’interface permettant de gérer l’Ethernet. H16107DF

En vert : C’est le connecteur permettant d’accéder à la console de la passerelle et de mettre à jour le module ZigBee.

Pour l’autre côté de la carte, c’est beaucoup moins intéressant… quoi que les inscriptions sont d’une aide précieuse :

demontage_pile_zigbee_lidl

En rouge : Ce sont les LEDs permettant d’avoir le statut de l’Ethernet et du ZigBee. A gauche le statut de l’Ethernet et à droite le statut du Zigbee.

On peut aussi observer sur cette partie, qu’il existe des inscriptions et on pourra remarquer les RX TX 3V3 et GND qui sont les points importants pour débuter le détournement.

Bon, du coup, en observant ce qui compose cette passerelle, on peut rapidement comprendre que nous avons à faire à un système embarqué probablement sous linux qui pilote un « modem » ZigBee.

Afin de prendre la main sur cette passerelle, il convient donc de trouver une porte d’entrée. Bien entendu, vous l’aurez compris, la console caractérisée par le RX/TX sera ce point d’entrée.

Avant de sortir l’artillerie lourde, il faut avoir le reflexe de chercher s’il n’existe pas déjà quelqu’un qui a fait le travail. Du coup, je me suis mis à chercher les travaux déjà existant sur la passerelle et je suis tombé sur l’article permettant de prendre la main sur cette passerelle.

Root de la passerelle

Un gros merci pour « PaulBanks » qui m’a fait économiser énormément de temps. En suivant scrupuleusement ces travaux, il a été très facile de prendre le contrôle de ma passerelle Lidl.

Du coup, je vous laisse aller lire l’ensemble de son œuvre et je vais résumer ce que j’ai fait afin de me permettre de casser le mot de passe root.

Tout d’abord, il faut s’occuper du connecteur pour aller chercher la console avec un convertisseur USB-TTL.

Console_lidl_gateway_zigbee

Orange = RX
Rouge = TX
Marron = GND

De l’autre côté un convertisseur USB-TTL. (n’oubliez pas de croiser RX / TX)

Lidl_Convertisseur_USB-ttl

Ensuite, une fois connecté, il suffit d’ouvrir un hyperterminal (dans mon cas putty) sur le bon port (38400baud 8N1) et de démarrer la carte.

Console_demarrage_lidl

Pour pouvoir « rooter », il faut rentrer sur la busy-box (le bootloader) et pour cela il faut rapidement appuyer sur la touche « echap ». Donc on met hors tension puis sous tension et « echap ».

lidl_busy_box

La prochaine étape consiste à lire des emplacements mémoires pour récupérer le mot de passe et la clef de chiffrement correspondante.

Vous aurez plus d’informations en suivant ce tutoriel.

Voici les premières commandes

FLR 80000000 401802 16
DW 80000000 4

Vous devriez récupérer les informations suivantes :

Clé de chiffrement (bien entendu avec des blocs différents):

80000000: XXXXXXXX YYYYYYYY ZZZZZZZZ AAAAAAAA

Puis :

 FLR 80000000 402002 32
 DW 80000000 8

Le mot de passe (sur 2 lignes)

80000000: BBBBBBBB CCCCCCCC DDDDDDDD EEEEEEEE
80000010: FFFFFFFF GGGGGGGG HHHHHHHH LLLLLLLL

Sauvegardez les 3 lignes puis récupérer le script python et suivez les instructions.

Vous devriez récupérer le mot de passe root en clair : Root password: b’XXXXXXXX

Une fois le mot de passe root décoder, vous avez accès à l’ensemble de la passerelle sur laquelle vous pourrez faire à peu près tout ce que vous voulez.

Une ZiGate Lidl ?

Bon, c’est une bonne chose de faite, nous pouvons désormais utiliser la passerelle Lidl.

La prochaine étape consiste à analyser et repérer comment fonctionne le module Tuya ZigBee pour le remplacer par une ZiGate

Analyse du module Tuya TYZS4

L’objectif ici est de repérer à quoi correspondent les différents PINs mais surtout l’interface UART. (En effet, pour piloter une ZiGate, on utilise une interface UART)

Pour cela, je suis allé sur le site Tuya pour récupérer la datasheet du module.

tuya_TYZS4

Une fois repéré, il faut maintenant dessouder le module.

2 solutions s’offrent à nous. En effet, ce module à deux lignes de PINs de part et d’autres donc c’est assez simple :

  • soit on utilise un pistolet à air chaud.
  • soit on charge en étain une ligne en faisant légèrement levier et ensuite on charge la 2ème ligne et le module se décolle.

Personnellement, j’ai pris la deuxième méthode mais elle est plus risquée pour les non avertis.

Ensuite on nettoie tout avec une tresse et un peu de flux et on obtient cela :

lidl_passerelle_demontage_tuya

Premiers tests avec un module ZiGate

Une fois l’analyse faite, il suffit de brancher une ZiGate sur les bons PINs et de procéder à quelques tests pour s’assurer que tout fonctionne comme il le faut.

Avant de faire l’installation finale, il convient de souder quelques straps :

lidl_zigate_strap_tests

Ensuite on se connecte sur 2 consoles de la passerelle (à l’aide de SSH).

Sur l’une on tape les commandes suivantes (réception de port série) :

$stty -F /dev/ttyS1 speed 115200 cs8
$ cat /dev/ttyS1

Sur l’autre console :

$ echo -ne '\x01\x02\x10\x10\x02\x10\x02\x10\x10\x03' > /dev/ttyS1

Une fois la commande lancée, vous devriez avoir sur la première console une réponse. Alors malheureusement, vous verrez des caractères spéciaux car c’est de l’hexadécimal et qu’il n’y a pas d’outil du type hexdump sur la passerelle.

Mais ça suffit pour valider que cela communique bien.

La passerelle Ethernet / Série

Pour que la passerelle Lidl se transforme en passerelle ZiGate, il faut procéder de la même façon que la ZiGate-WiFi. En effet, il faut que les requêtes TCP/IP soit transmises au port série et inversément. Pour cela, il faut utiliser les outils Ser2Net ou Socat mais dans notre cas, il faut développer soi-même le programme.

En soi, ce n’est pas très complexe et en plus, ça a déjà été développé.

Grâce a paulbanks et Ordspilleren, tout a déjà été fait, il n’y a plus qu’à suivre le tutoriel suivant et télécharger les sources.

Contrairement au tutoriel, j’ai utilisé la fonction tftp pour transférer le fichier serialgateway.

lidl_hack_tftpserver

On choisit, le répertoire où se trouve le fichier à transférer puis on sélectionne la bonne interface réseau.

Enfin sur la console de la passerelle on tape la commande suivante :

$ cd /tuya
$ tftp -gr serialgateway <ip de votre machine>
$ chmod +x serialgateway

Ensuite, il suffit de reprendre le tutoriel pour changer les scripts de démarrage pour l’adapter à la nouvelle passerelle. Attention, dans notre cas et pour coller à la ZiGate-WiFi, il faut changer le port par défaut : 9999

if [ ! -f /tuya/tuya_start.original.sh ]; then cp /tuya/tuya_start.sh /tuya/tuya_start.original.sh; fi

cat >/tuya/tuya_start.sh <<EOF
#!/bin/sh
/tuya/serialgateway -d/dev/ttyS1 -p9999 -f &
echo 1 > /proc/led1
EOF
chmod 755 /tuya/serialgateway
if [ ! -f /tuya/ssh_monitor.original.sh ]; then cp /tuya/ssh_monitor.sh /tuya/ssh_monitor.original.sh; fi
echo "#!/bin/sh" >/tuya/ssh_monitor.sh

Une fois effectué, vous pouvez redémarrer la passerelle et faire le même test que le tutoriel pour la ZiGate-WiFi …sauf qu’il faudra mettre la bonne adresse IP (celle de la passerelle Lidl)

Modification hardware

Pour que le hack soit complet, j’avais dans l’idée de rajouter une antenne externe pour augmenter les performances et de brancher la LED de statut ZigBee à la ZiGate.

Concernant l’antenne externe, pas de problème, il suffit de prendre une module ZiGate avec connecteur uFL.

Pour la LED de statut, j’ai un peu triché, j’ai dessoudé la résistance de pull-up de la LED de statut et j’ai connecté le GPIO17 de la ZiGate sur cette dernière. J’ai du rajouter dans le script de démarrage la ligne :

echo 1 > /proc/led1

Lidl_led_status

Repérage des LEDs statut Zigbee

lidl_zigate_gateway

Montage de la ZiGate sur la passerelle Lidl

Lidl_zigate_ethernet

Ajout de l’antenne externe et fermeture du boitier

Lidl_zigate_ethernet_on

Mise sous tension et réseau de la nouvelle ZiGate Ethernet

Une fois démarré, il suffit de paramétrer votre box domotique compatible comme une ZiGate-WiFi. il faut rentrer l’adresse IP et le port 9999.

Vous avez désormais une ZiGate Ethernet compatible Jeedom / Domoticz ou Home-assistant.

\o/

Conclusion

La catégorie détournement et hack font partis de mes articles préférés et je prend beaucoup de plaisir à vous partager mes découvertes.

Cependant, ce détournement me permet aussi d’utiliser une ZiGate sur Ethernet. (utile pour mes plateformes de tests)

Alors, je vous avez déjà proposé un tutoriel pour construire la même chose avec un RaspberryPi, mais dans ce cas précis, on a une passerelle plus aboutie et qui ne risque pas de planter à cause d’une carte SD. C’est du solide !

Enfin l’objectif de cet article n’est pas de reproduire en série mais bien de s’amuser « utile » et d’apprendre comment fonctionne ce genre de matériel.

J’espère que ces travaux vous auront plu et que vous avez avez pu apprendre 2-3 trucs.

A bientôt !

❌
❌