Was ich schon lange mal geplant hatte, war eine Einkaufsliste einzurichten, auf die mehrere Leute Zugriff haben. Bedient werden würde die Liste größtenteils vom iPhone aus. Ideal wäre es gewesen, wenn man einfach die Notizen teilen könnte, was aber leider (noch?) nicht geht und viel Komfort gäbe es auch nicht. Also musste eine Alternative her. Klar, es gibt zig Apps, die sowas bieten, aber das ist dann doch zuviel des Guten, ich wollte was einfaches. Also habe ich mich in den Weiten des Web auf die Suche begeben und nach längerer Suche folgendes gefunden:
Einkaufsliste 0.8.3
Da ich auf meinem Synology NAS sowieso einen Webserver mit Datenbank laufen habe, der auch von außen erreichbar ist, war die erste Hürde schonmal genommen. Jetzt musste ich "nur" noch die Installation hinbekommen, was etwas tricky war. Hier die finalen Schritte:
den Ordner in das Web Verzeichnis entpacken
in /db/index.php den connection string zur MariaDB eintragen:
R::setup( 'mysql:host=localhost;dbname=Einkaufsliste','user', 'password' ); //for both mysql or mariaDB
auf der Datenbank Instanz die entsprechende Datenbank anlegen und User berechtigen, die Tabelle wird dann beim erstmaligen Aufruf der Seite automatisch angelegt
auf der Synology die notwendigen Voraussetzungen schaffen:
ipkg install git
cd /volume1/web/Einkaufsliste
bower install --allow-root
Nachdem das alles geschafft war, lief es erst einmal. Allerdings hatte ich noch zwei Probleme:
1. beim Eintragen eines neuen Artikels musste man immer die Anzahl mit angeben, die meistens eigentlich ja 1 ist
2. die Icons auf dem iPhone wurden falsch dargestellt
1. war recht einfach zu lösen, indem ich die Files /src/views/new.tpl.html und /src/js/app.js angepasst habe. Wenn ich bei der Anzahl jetzt nichts eintrage, wird der Artikel mit 1 als Standard Wert angelegt - perfekt
2. war ein sehr nerviges Problem, dessen Ursache offensichtlich die Fonts auf dem iPhone sind. Ich konnte das nur umgehen, indem ich die Darstellung der Icons nicht dem Client überlassen habe, sondern direkt Bilder eingebaut habe. Generiert zwar mehr Traffic, aber in sehr überschaubarem Rahmen, da die Icons nur wenige Byte bis in den einstelligen KByte Bereich groß sind.
Nach mehreren Wochen Praxistest muss ich sagen, dass die Liste alle Erwartungen erfüllt und übertroffen hat. Hier findet Ihr meine angepasste Version zum download: einkaufsliste (zip, 1,739 KB)
Jetzt noch 2 Screenshot, wie das live aussieht:
-> die Liste
-> neue Artikel auf die Liste
fistandantilus am 18. Dezember 16
|
Permalink
|
0 Kommentare
|
kommentieren
Als ich mal wieder auf der Suche nach neuen Ideen war, was ich noch so automatisieren könnte, fiel mir unsere Sauna ein. Ihr werdet jetzt vielleicht denken, was kann man da großartig automatisieren? Nun eigentlich ganz einfach, zum einen das Einschalten per App und eine Info, sobald die Sauna die Betriebstemperatur erreicht hat.
Technisch musste dazu erst einmal dafür sorgen, dass ich irgendwie den Saunaofen schalten kann. Dazu habe ich die folgenden Komponenten im Schaltschrank verbaut:
- Universal Lastschuetz, Relais 230V, 400V 3xNO, 1xNC bis 20A f. Hutschiene
- Homematic Hutschienen Schaltaktor HM-LC-Sw1-DR
Grundsätzlich muss ich aber wieder sagen, Finger weg vom Schaltschrank, wenn Ihr nicht wisst, was Ihr tut. Denn:
Strom macht klein, schwarz und hässlich ;)
Hier der Code des eingebundenen Schaltaktors in FHEM:
define UG.Saunaofen CUL_HM 3710B3
attr UG.Saunaofen IODev HMLAN0
attr UG.Saunaofen IOgrp CCU:HMLAN0
attr UG.Saunaofen autoReadReg 4_reqStatus
attr UG.Saunaofen event-on-change-reading state
attr UG.Saunaofen expert 1_on
attr UG.Saunaofen firmware 2.7
attr UG.Saunaofen group 1: Sauna
attr UG.Saunaofen model HM-LC-Sw1-DR
attr UG.Saunaofen peerIDs 00000000,3710B301,
attr UG.Saunaofen room UG.Sauna
attr UG.Saunaofen serialNr MEQ0276306
attr UG.Saunaofen subType switch
attr UG.Saunaofen webCmd statusRequest:toggle:on:off
Das Schalten ist theoretisch schon möglich. Ich wollte aber noch einen Sicherheitsmechanismus haben, der die Sauna ganz sicher spätestens wieder nach 3 Stunden ausschaltet. Das Schöne bei dem Aktor ist, dass er einen internen Timer hat, den man dafür nutzen kann. Dummerweise wird der nur bei physischem Tastendruck angetriggert, den wir aber nicht haben. Zum Glück kann man das aber auch simulieren, was zwar nicht kompliziert ist, aber die Lösung etwas aufbläht.
set UG.Saunaofen regSet shOnTime 10800 self01
- zuerst das Register vom Aktor auf 10800 Sekunden = 3h setzen
define UG.Saunaschalter dummy
attr UG.Saunaschalter group 1: Sauna
attr UG.Saunaschalter room UG.Sauna
attr UG.Saunaschalter setList off on
- Dummyschalter definieren
define UG.SaunaAn notify UG.Saunaschalter:on set UG.Saunaofen press short self01;; set UG.Saunagaenge 1
attr UG.SaunaAn group 1: Sauna
attr UG.SaunaAn room UG.Sauna
define UG.SaunaAus notify UG.Saunaschalter:off set UG.Saunaofen press short self01;; set UG.Saunagaenge 0
attr UG.SaunaAus group 1: Sauna
attr UG.SaunaAus room UG.Sauna
define set_UG_SaunaAn notify Saunaofen* { if (Value("UG.Saunaofen") eq "on") { fhem ("setstate UG.Saunaschalter on");; fhem ("setstate UG.SaunaBereit defined") }}
attr set_UG_SaunaAn group 1: Sauna
attr set_UG_SaunaAn room UG.Sauna
define set_UG_SaunaAus notify Saunaofen* { if (Value("UG.Saunaofen") eq "off") { fhem ("setstate UG.Saunaschalter off;;set UG.Saunagaenge 0") }}
attr set_UG_SaunaAus group 1: Sauna
attr set_UG_SaunaAus room UG.Sauna
- auf den Dummy reagieren und den Status des Dummies setzen, wenn der Ofen an- bzw. ausgeschaltet wird, UG.Saunagaenge wird nur für statistische Zwecke geschrieben
fistandantilus am 15. Dezember 16
|
Permalink
|
0 Kommentare
|
kommentieren
Um für uns noch einiges an Comfort zu schaffen, wollte ich vom Haus bei gewissen Aktionen aktiv benachrichtigt werden. Folgende Szenarien sind das aktuell:
- Rückmeldung, dass die Waschmaschine fertig ist per akustischem Signal und Push Nachricht auf´s Smartphone
- Benachrichtigung sobald die Sauna die Soll-Temperatur erreicht hat
- morgentlicher Wetterservice
- Statusrückmeldungen bei kritischen Events
Für die Umsetzung der Push Nachrichten verwende ich Pushover. Pushover ist ein kostenfreier Dienst, mit dem man Push Nachrichten auf sein Handy schicken kann. Apps gibt es für iOS und Android, die allerdings einmalig bezahlt werden muss. Und natürlich gibt es auch mal wieder ein Modul:
PUSHOVER, welches das Einbinden in FHEM vereinfacht. Auf das Setup geh ich nicht weiter ein, das ist im Wiki sehr gut beschrieben. Ich zeige Euch nur ein paar Beispiele zur Anregung:
define Weatherforecast OPENWEATHER meinProjekt meinOrt meinAPIkey
attr Weatherforecast INTERVAL 21600
attr Weatherforecast room Wetter
define DailyWeatherNotify at *06:45 {my $TETemperatur = ReadingsVal("WS1_TEMPERATURE","state", "");; my $TERain = ReadingsVal("WS1_ISRAINING","state", "");; my $TETempmax = ReadingsVal("Weatherforecast","fc0_tempMax11", "");; my $TEWeather = ReadingsVal("Weatherforecast","fc0_weather11", "");; my $TEUnit = "°C";; system ("curl -s -F 'token=aYA4DVYTVt77Dc93JsUZXWBtaBWVXm' -F 'user=u8QsBGPTr41B5H7GupYVD4qS6W8j5S' -F 'message=aktuelles Wetter\nTemperatur $TETemperatur°C\nRegen: $TERain\nHeute: $TETempmax$TEUnit / $TEWeather' https://api.pushover.net/1/messages.json")}
attr DailyWeatherNotify room Wetter
-> mein täglicher Wetterservice, für den Forecast verwende ich
Openweather
define UG.SaunaBereit DOIF ([UG.Saunaofen] eq "on" and [UG.SaunatemperaturInnen] > 79) (set Pushover msg 'FHEM' 'Sauna bereit')
attr UG.SaunaBereit disable 0
attr UG.SaunaBereit group 1: Sauna
attr UG.SaunaBereit room UG.Sauna
-> Sauna bereit:)
Für die akustische Rückmeldung ist ein HomeMatic-Funk-Gongmodul MP3 im Einsatz. Auf einer SD Karte sind verschiende Sound Samples hinterlegt, die man einfach abrufen kann:
define HM_3674FE CUL_HM 3674FE
attr HM_3674FE IODev CUL1
attr HM_3674FE IOgrp CCU:CUL1
attr HM_3674FE autoReadReg 4_reqStatus
attr HM_3674FE devStateIcon .*:audio_volume_high
attr HM_3674FE expert 2_raw
attr HM_3674FE firmware 1.0
attr HM_3674FE group 2: Benachrichtigungen
attr HM_3674FE model HM-OU-CM-PCB
attr HM_3674FE peerIDs 00000000,
attr HM_3674FE room System
attr HM_3674FE serialNr MEQ0277871
attr HM_3674FE subType outputUnit
set HM_3674FE playTone 032
Ein paar Soundfiles für den Aktor könnt Ihr hier:
soundfiles (zip, 6,066 KB)
runterladen.
fistandantilus am 06. Dezember 16
|
Permalink
|
0 Kommentare
|
kommentieren