QRCodeGenerator

HMIP Installation - Server im Internet

Moderator: Co-Administratoren

Antworten
Greenberet
Beiträge: 164
Registriert: 12.01.2017, 23:33
Danksagung erhalten: 4 Mal

QRCodeGenerator

Beitrag von Greenberet » 29.03.2018, 00:17

Hallo,

ich möchte euch meinen QRCodeGenerator vorstellen. Github - QRCodeGenerator
Er ist teil meiner Python HMIP API Sample Library: https://github.com/coreGreenberet/homematicip-samples

Der QRCodeGenerator ladet die Konfiguration des AP herunter und generiert für alle Geräte den QRCode. Sollte man ein Gerät neu anlernen müssen kann man so einfach den Code vom PC aus scannen und muss ihn nicht in irgendwelchen Mappen/Schachteln/unzugänglichen Sticker am Gerät/... suchen.

Für eine bessere Übersicht wird auch noch eine Webseite erstellt in der alle Geräte mit Raum, DeviceLabel, DeviceModel, DeviceID, QRCode aufgelistet sind.

Vorraussetzungen
  • HMIP-HAP
  • Python 3
  • homematicip & qrcode[pil] Module (pip install -r requirements.txt)
  • einen access token
    • kann mit 'hmip_generate_auth_token.py' von der CLI erstellt werden. Einfach den Anweisungen des scripts folgen
    • die erstellte config.ini wird am besten nach /etc/homematicip-rest-api/ bzw. unter windows nach %PROGRAMDATA%\homematicip-rest-api\ kopiert
Verwendung
einfach das python script 'qrcodegenerator.py' ausführen.
Zuletzt geändert von Greenberet am 10.04.2018, 16:10, insgesamt 2-mal geändert.
Homematic IP mit Access Point - Python Modul: Programmieren mit dem Access Point

Andi_Fritz
Beiträge: 5
Registriert: 19.11.2017, 10:34

Re: QRCodeGenerator

Beitrag von Andi_Fritz » 08.04.2018, 18:47

Hallo,
super Idee mit dem Codegenerator... ich schaffe es leider nicht, ihn auszuführen.

Hättest mir bitte ein wenig Hilfestellung?
Danke
Gruss
Andreas

Greenberet
Beiträge: 164
Registriert: 12.01.2017, 23:33
Danksagung erhalten: 4 Mal

Re: QRCodeGenerator

Beitrag von Greenberet » 09.04.2018, 19:00

Was klappt denn nicht?
Hast du das homematicip python modul installiert?
Hast du einen auth token generiert?
Homematic IP mit Access Point - Python Modul: Programmieren mit dem Access Point

Raider
Beiträge: 16
Registriert: 20.04.2018, 13:36

Re: QRCodeGenerator

Beitrag von Raider » 20.04.2018, 14:22

Der QRCodeGenerator macht genau, was er soll! Vielen Dank!
Einen kleinen Fehler habe ich aber doch gefunden. :wink:
Die QRCode Images werden mit der Endung .PNG erstellt.
In der qrcodes.html werden sie aber mit der Endung .png
aufgerufen. Dieser Fehler war aber schnell korrigiert.

Ich habe mich auch am CheckPresenceOnPing versucht.
Allerdings habe ich keine Anleitung gefunden, wo man die
IP-Adressen eintragen muss. Ich habe einfach mal versucht,
sie in der config.ini einzutragen:
[SCANABLE_DEVICES]
PHONE_IP_1 = 192.xxx.xxx.xxx
Leider wird der Alarm trotz erreichbarer IP eingeschaltet.
Für Deine Hilfe wäre ich sehr dankbar!

Es wäre auch sehr schön, wenn der Alarm bei Wiedererreichbarkeit
der eingetragenen IPs wieder ausgeschaltet würde.
Auch eine Auswahl von Vollschutz und Hüllschutz wäre toll.
Noch mal Danke!
Gruß Raider

Edit: Ich habe die IP jetzt direkt im scan.py eingetragen. Klappt!

Greenberet
Beiträge: 164
Registriert: 12.01.2017, 23:33
Danksagung erhalten: 4 Mal

Re: QRCodeGenerator

Beitrag von Greenberet » 21.04.2018, 14:24

Raider hat geschrieben:Der QRCodeGenerator macht genau, was er soll! Vielen Dank!
Einen kleinen Fehler habe ich aber doch gefunden. :wink:
Die QRCode Images werden mit der Endung .PNG erstellt.
In der qrcodes.html werden sie aber mit der Endung .png
aufgerufen. Dieser Fehler war aber schnell korrigiert.
Danke, da ich das unter Windows getestet hatte ist mir das Problem nicht aufgefallen.
Ist bereits gefixt.
Raider hat geschrieben: Ich habe mich auch am CheckPresenceOnPing versucht.
Allerdings habe ich keine Anleitung gefunden, wo man die
IP-Adressen eintragen muss. Ich habe einfach mal versucht,
sie in der config.ini einzutragen:
[SCANABLE_DEVICES]
PHONE_IP_1 = 192.xxx.xxx.xxx
Leider wird der Alarm trotz erreichbarer IP eingeschaltet.
Für Deine Hilfe wäre ich sehr dankbar!

Edit: Ich habe die IP jetzt direkt im scan.py eingetragen. Klappt!
Ja die IP's musst du direkt im Script einbauen. Das war so gedacht =)

die Zonen kannst du selbst einstellen indem du die Zeile 33 im Code modifizierst

Code: Alles auswählen

home.set_security_zones_activation(True,True)
Der erste Parameter ist für die interne Zone und der 2te für die externe Zone.
Hüllschutz wäre demnach "False,True"
Wenn du beides auf "False" setzt, dann werden die Zonen deaktiviert und es ist kein Schutz mehr aktiv.
Raider hat geschrieben: Es wäre auch sehr schön, wenn der Alarm bei Wiedererreichbarkeit
der eingetragenen IPs wieder ausgeschaltet würde.
Auch eine Auswahl von Vollschutz und Hüllschutz wäre toll.
füge einfach die folgende Zeile zwischen 27 und 28 ein.

Code: Alles auswählen

                home.set_security_zones_activation(False,False)

Dadurch wird beim erreichen einer IP der Schutz wieder deaktiviert
Homematic IP mit Access Point - Python Modul: Programmieren mit dem Access Point

Raider
Beiträge: 16
Registriert: 20.04.2018, 13:36

Re: QRCodeGenerator

Beitrag von Raider » 22.04.2018, 11:58

Hallo Greenberet,

danke für Deine Antwort. Klappt auch alles soweit.
Allerdings wird jedes mal, wenn ich das Script über die crontab meines Servers aufrufe, auch ein Befehl abgesetzt.
Also wenn die IP erreichbar ist und die crontab das Script jede Minute aufruft, bekomme ich auch jede Minute die
Nachricht, dass der Alarm ausgeschaltet wurde. :shock: :D

Ich habe mir dann überlegt, dass man den Status der Alarmfunktion abfragen muss, um dies zu verhindern.
Da ich Python nicht wirklich beherrsche, habe ich das Ganze als shell script mit Hilfe Deines hmip_cli.py verwirklicht.
Klappt und macht genau das was es soll! :) Bei Interesse setze ich das Script gerne hier rein.

Vielen Dank für Dein tolles Projekt!

Ist es eigentlich schon möglich, damit auch die Daten von der Wetterstation abzufragen?

Gruß Raider

Greenberet
Beiträge: 164
Registriert: 12.01.2017, 23:33
Danksagung erhalten: 4 Mal

Re: QRCodeGenerator

Beitrag von Greenberet » 22.04.2018, 17:01

Raider hat geschrieben:Hallo Greenberet,

danke für Deine Antwort. Klappt auch alles soweit.
Allerdings wird jedes mal, wenn ich das Script über die crontab meines Servers aufrufe, auch ein Befehl abgesetzt.
Also wenn die IP erreichbar ist und die crontab das Script jede Minute aufruft, bekomme ich auch jede Minute die
Nachricht, dass der Alarm ausgeschaltet wurde. :shock: :D

Ich habe mir dann überlegt, dass man den Status der Alarmfunktion abfragen muss, um dies zu verhindern.
probier die neue Version =) Da gibt es jetzt eine Variable dafür und es wird auch überprüft ob der Schutz aktiv ist.
Raider hat geschrieben: Da ich Python nicht wirklich beherrsche, habe ich das Ganze als shell script mit Hilfe Deines hmip_cli.py verwirklicht.
Klappt und macht genau das was es soll! :) Bei Interesse setze ich das Script gerne hier rein.
ja bitte...ich frag mich gerade wie das funktionieren soll. im hmip_cli.py gibt es keine Überprüfung und der Status wird einfach gesetzt (wie in der vorigen Version des Scripts)
Raider hat geschrieben: Vielen Dank für Dein tolles Projekt!
Bitte =)
Raider hat geschrieben: Ist es eigentlich schon möglich, damit auch die Daten von der Wetterstation abzufragen?
Aktuell nur "HmIP-SWO-PR". Falls du eine andere hast kannst du mir gerne den output von "hmip_cli.py --dump-configuration" per PN schicken, dann kann ich diese einbauen.
Homematic IP mit Access Point - Python Modul: Programmieren mit dem Access Point

Raider
Beiträge: 16
Registriert: 20.04.2018, 13:36

Re: QRCodeGenerator

Beitrag von Raider » 22.04.2018, 18:26

Greenberet hat geschrieben:
probier die neue Version =) Da gibt es jetzt eine Variable dafür und es wird auch überprüft ob der Schutz aktiv ist.
Werde ich gleich mal machen!
Greenberet hat geschrieben:
ja bitte...ich frag mich gerade wie das funktionieren soll. im hmip_cli.py gibt es keine Überprüfung und der Status wird einfach gesetzt (wie in der vorigen Version des Scripts)
Hier ist das Script:

Code: Alles auswählen

#!/bin/bash


STATUS=$(python3 hmip_cli.py --list-security-journal 2>/dev/null | tail -f -n 1 | cut -c60-79)
ALEXA=$(python3 hmip_cli.py --list-security-journal 2>/dev/null | tail -f -n 1 | cut -c20-25)

while ! ping -c3 192.168.xxx.xxx &>/dev/null
        do if [ "$STATUS" = "external_zone(False)" ]; then
        python3 hmip_cli.py --set-protection-mode presence
        fi
        exit 0
done
if [ $ALEXA = "Amazon" ]; then
    exit 0
    else
        if [ $STATUS = "external_zone(True)" ]; then
            python3 hmip_cli.py --set-protection-mode disable
        fi
fi
Ob "Amazon" im security-journal vorkommt, prüfe ich, weil ich nachts den Alarm über eine Routine der Alexa-App einschalten lasse und er eingeschaltet bleiben soll.
Greenberet hat geschrieben: Aktuell nur "HmIP-SWO-PR". Falls du eine andere hast kannst du mir gerne den output von "hmip_cli.py --dump-configuration" per PN schicken, dann kann ich diese einbauen.
Ich habe schon einige Zeit mit dem Gedanken gespielt, mir genau diese zuzulegen. Abgehalten hat mich bisher, dass man halt keine Daten exportieren konnte. Hat sich ja jetzt geändert.
Schau'n wir mal... :D

malkie
Beiträge: 231
Registriert: 16.11.2017, 07:48
Hat sich bedankt: 4 Mal
Danksagung erhalten: 5 Mal

Re: QRCodeGenerator

Beitrag von malkie » 03.05.2018, 14:49

Hallo Greenberet,
vielen Dank fuer dein Script. Hat wunderbar funktioniert.
Habe mir etwas Hilfe geholt da ich Python kein Stueck kann und das script noch angepasst so das es mir das direkt in das passende Verzeichniss von meinem Webserver schmeist und noch UTF8 codiert so das auch Umlaute gehen.

Gruss

Malkie

Antworten

Zurück zu „HomeMatic IP mit Access Point“