Das Leistungsschutzrecht

Ich musste grad mit einem Schmunzeln im Gesicht, einen Beitrag auf Netzpolitik.org lesen, in welchem es um das von Frankreich eingeführte Leistungsschutzrecht geht.
Frankreich ist das erste Land, dass die Richtlinie in nationales Recht umgewandelt hat und nun hat Google darauf reagiert, wie man es von einem Unternehmen erwartet: In französischen Suchergebnissen wird nun nur noch die Webseite angezeigt, kein Vorschau text, keine Bilder.

Hiermit möchte Google sich die Lizenzkosten sparen, die eigentlich an die Presseverleger abgeführt werden müssten um die Vorschau texte einblenden zu dürfen.

Jetzt mal ernsthaft liebe Presseverleger?
Google hält sich doch an nationales Recht (und auch an die Richtlinie).
Da keine Lizenz vorhanden ist, werden die “Snippets” nicht mehr angezeigt. (Punkt ende aus).
Das ist doch das, was ihr gewollt habt mit eurer Lobby-Arbeit und ihr erwartet nun ernsthaft, dass sich Google von euch erpressen lässt und brav Lizenzkosten zahlt, damit ihr dadurch Werbeeinnahmen generieren könnt + die Google Steuer on Top?

Ich finde es hier richtig und wichtig wie Google reagiert.
Google sollte sich an der Stelle nicht verunsichern und erpressen lassen, sondern sich einfach auf die Art und Weise an geltendes Recht halten.
Es wurde so gewollt und Sie haben es so bekommen.

Benachrichtigung Alarmanlage Auslöser

Ich habe heute noch eine kleine Optimierung bzw. Zusatz zu meiner Alarmanlage dazu programmiert.

Das ursprüngliche Script, welches ich hierzu abgewandelt habe, bezieht sich eigentlich auf die Rauchmelder um per Push den ausgelösten Rauchmelder als Information zu erhalten. Das Script habe ich wieder einmal im Homematic-Forum gefunden.

Schritt 1: Gewerk anlegen und überprüfen
Für das Script ist es nötig, alle zu prüfenden Fenster / Türkontakte in ein Gewerk zu packen, in meinem Fall Alarmanlage.

Mit folgendem Script (in der CCU -> Programme -> Skript testen), muss das Gewerk überprüft werden, als Ergebnis muss der Gewerkname ausgegeben werden.
Wenn das nicht der Fall ist muss das Gewerk gelöscht werden, die CCU neu starten, Gewerk wieder anlegen, Skript ausführen.
var sec = (dom.GetObject(ID_FUNCTIONS)).Get("Alarmanlage");
WriteLine(sec);

Schritt 2: Kontakte zuordnen
Natürlich müssen dem neuen Gewerk nun auch die Fenster -und Türkontakte zugewiesen werden, die der Alarmanlage zugeordnet sind, ggf. alle verfügbaren Kontakte.
Ich gehe hier aber nun nicht weiter darauf ein, wie das funktioniert 😉

Schritt 3: Systemvariablen
Es gibt eine Pflicht variable, die benötigt wird um später das Benachrichtigungsprogramm zu triggern, in meinem Fall als Variablentyp “Alarm” um das auch in der CCU entsprechend zu signalisieren.

Systemvariable “Alarmanlage ausgelöst” als Alarm

Wenn man das ganze noch per App abrufen möchte oder in der CCU anzeigen lassen möchte, kann man den Auslöser auch noch in eine Zeichenkette ausgeben lassen

Systemvariable “Alarmkontakt” als Zeichenkette

Schritt 4: Alarm-Programm
Nun wird ein neues Programm benötigt, mit dem die Alarm-Variable auf ausgelöst gesetzt wird, als Auslöser werden hier alle Fenster -und Türkontakte definiert.

Klicken zum vergrößern

Unten ist noch ein Script eingebettet, dass wie folgt aussieht:
dom.GetObject('Alarmkontakt').State("");
string list;
list="";

Schritt 5: Benachrichtigungsprogramm
Nun brauch man noch das Programm, welches die Benachrichtigung raushaut auf den Kanälen, die man haben möchte, in meinem Fall ist das pocketControl.

Klicken zum vergrößern

Script zu Erkennung, welcher Kontakt ausgelöst hat:
var sec = (dom.GetObject(ID_FUNCTIONS)).Get("Alarmanlage");
string i;
string list;
list="";
foreach(i,sec.EnumUsedIDs())
{
var item=dom.GetObject(i);
if(item.IsTypeOf(OT_CHANNEL))
{
var dev=dom.GetObject(item.Device());
if( (dev.HssType()=="HmIP-SWDM") || (dev.HssType()=="HM-Sec-SCo") || (dev.HssType()=="HMIP-SWDO") )
{
var state=item.DPByHssDP("STATE");
if(state.Value())
{
list=list+dev.Name();
}
if(state1.Value())
{
list=list+dev.Name();
}
}
}
}
dom.GetObject('Alarmkontakt').State(list);

Script für pocketControl-Push
string PushText = "Die Alarmanlage wurde durch "#list#" ausgelöst!";dom.GetObject('pocketControlPushMessage').State(PushText);

Natürlich kann man hier auch jede andere Benachrichtigungsart verwenden.
Die verschiedenen Arten sind m.M. nach sehr gut in der Anleitung für das ursprüngliche Script beschrieben.
Das Ergebnis sieht dann wie folgt aus:

Alarmanlage mit Homematic und Alexa

Da ich nun alle Fenster und Türen mit Fensterkontakten bzw. Türkontakten ausgestattet habe, kann ich das als Grundlage für den Bau für eine Alarmanlage nutzen.

Zuerst habe ich mir überlegt, wie ich den Alarmsignalton realisieren kann, da kam ich zuerst auf die Rauchmelder, da diese die Option für einen Einbruchsalarm haben.
Da dachte ich mir dann, ist eigentlich doof, da darunter die Batterielaufzeit leidet und die Dinger dafür zu teuer sind.
Die Homematic Alarmsirene ist mir auch zu teuer, da habe ich andere Prioritäten.
Dann kam ich auf die unnütz rumliegende Alexa.
Diese könnte man ja ins Schlafzimmer stellen, Mikrofon deaktivieren und dann hätte man etwas, um den Alarm auszugeben.
Diese Idee hatte mich dann überzeugt.

Nun habe ich das ganze wie folgt realisiert:
Ich habe einen weiteren bottle-Server gestartet, der die Routinen in Alexa ansteuert.
In Alexa habe ich eine Routine angelegt, die einfach nur mehrmals sagt “Alarm! Alarm! Alarm! Die Alarmanlage wurde ausgelöst”
Dann habe ich das mal getestet und die Zeit gemessen, wie lang die Routine brauch, um das Abzuarbeiten, da ich das min. 2 mal ausführen will, ich kam auf etwa 1 Minute 20.


(Bild in Groß)

Nun geht es an das Homematic-Programm, das sieht dann wie folgt aus:


(Bild in Groß)

Was tut das Programm?
Also in erster Linie sind die Fenster und Türkontakte der Auslöser des Programms.
Die Alexa soll als Sirene primär genutzt werden, funktioniert natürlich nur, wenn ich Online bin, deshalb habe ich via CUxD-Ping noch eine Abfrage drin, bin ich Online oder nicht?
Ich pinge hier die 8.8.8.8, denke mal es ist unwahrscheinlich dass dieser DNS-Server von Google mal tot ist .
Wenn also CUxD-Ping-Internet ein ist, soll die Alexa routine "alarmanlage" ausgelöst werden.
Als Backup für den Offline Fall (wie gestern Abend, Danke Vodafone) sollen dann doch die Rauchmelder ausgelöst werden.
Wenn wir abwesend sind, geht eine Push-Benachrichtigung an mein Handy.
Ich denke aber, dass ich mal noch versuche, hier einen Anruf über die Fritz!Box zu triggern, ist noch in Arbeit und wird ein eigener Blogeintrag, wenn das mal geschafft ist.

Ich denke, dass ist eine wunderbare Umsetzung der Alarmanlage.

Passwörter verwalten mit KeePass

Ich hatte in Vergangenheit meine ganzen Kennwörter in Google Chrome mit einem Syncpass gesichert und Synchron gehalten.
In jüngster Vergangenheit habe ich aber festgestellt, dass die Synchronisierung nicht mehr so wirklich funktioniert hat und einige Kennwörter, die ich auf PC A geändert hatte, nicht auf PC B synchronisiert wurden.

In diesem Kontext habe ich mich mal mit einer Alternative beschäftigt, um auch die Passwortverwaltung in die eigene Nextcloud zu verschieben um einfach die Kontrolle zu behalten, man kennt ja Google.

Hier habe ich mich dann für eine KeePass Datenbank entschieden, da es zum einem Plattformunabhängig ist und zweitens, es eine Integration in Nextcloud gibt, dazu aber später mehr.

Ich habe nun also eine KeePass Datenbank auf meiner Nextcloud Instanz angelegt und diese via WebDAV in das KeeWeb-Plugin von Nextcloud integriert.
Hierfür ist noch ein kleiner Kunstgriff in Nextcloud nötig, damit die Datei einfach per Klick in dem Web-Plugin geladen werden kann:
sudo nano /var/www/html/nextcloud/config/mimetypemapping.json
mit folgendem Inhalt:
{
"kdbx": ["application/x-kdbx"]
}
Ich Anschluss muss zwingend ein Filescan angestoßen werden, da ansonsten die Änderung nicht wirksam ist!
sudo -u www-data php /var/www/html/nextcloud/occ files:scan --all

Wenn der File-Scan durchgelaufen ist, können die kdbx Dateien von KeePass einfach per Klick in Nextcloud geöffnet werden.

Um nun Geräteunabhängig auf diese Datenbanken zugreifen zu können, habe ich mich in Primärerer Weise nach Programmen umgeschaut, die eine WebDAV.
Folgende Programme verwende ich:

iOS: Strongbox (WebDAV Unterstützung)
Windows: KeePass (Offizielle Programm, WebDAV Unterstützung)
MacOSX: MacPass (WebDAV Unterstützung)
Chrome Browser: KeePass Tusk (WebDAV Unterstützung)

Im Anschluss bin ich mal auf beiden Hauptgeräten (Mac und Windows) die Passwortliste durchgegangen, da hier Abweichungen durch den oben genannten Synchronisationsaufall entstanden sind.

Mannomann was sich da an Zugangsdaten über die Zeit ansammelt ist wunderbar (NICHT!).
Beim durchgehen und übertragen in KeePass habe ich in erster Linie einmal alle Kennwörter geändert und in zweiter Linie, Accounts gelöscht bzw. löschen lassen, die ich eigentlich gar nicht mehr benutze.

Alles in allem, erkenne ich jetzt keinen großen Nachteil durch die Konstellation.
Durch das Chrome Plugin und WebDAV habe ich auf allen Geräten immer die neuste Datenbank-Datei und Kann die Kennwörter auch jederzeit überall ändern wie ich es brauche.

UPDATE:
Mit der iOS App Strongbox ist mir noch aufgefallen, dass man den Standart Passwortspeicher in den iOS Einstellungen umändern kann.
Finde ich mittlerweile sehr nützlich.
Hierfür unter iOS in die Einstellungen -> Passwörter & Accounts -> Automatisch ausfüllen und hier einfach die von iCloud-Schlüsselbund auf Strongbox ändern.