Freitag, 30. Januar 2015

Thermostat und Schaltaktor für Zweipunktregelung direkt verknüpfen

Der Raumthermostat HM-TC-IT-WM-W-EU ist eigentlich für die Steuerung von Ventilantrieben gedacht. Die direkte Verbindung mit Schaltaktoren für eine Zweipunktregelung ist eigentlich nicht vorgesehen, aber möglich - wie ich heute im Forum gefunden habe.

Bisher habe ich meine Elektroheizung mit THRESHOLD über FHEM gesteuert. Der Thermostat liefert die Werte measured-temp und desired-temp - die Namen sind sprechend.

Damit wird der Ist- und Sollwert an THRESHOLD übergeben und ein HM-LC-SW1-FM schaltet die Heizung. Der Thermostat steht entweder auf "manu" um die Sollwerte einzig und allein durch das Stellrad am Thermostaten oder durch FHEM vorgeben zu lassen.
Man kann mit
set SensorR2_Climate desired-temp 15
die Solltemperatur auch einfach per Programm setzen.
Es ist auch möglich, die das Wochenprogramm im Thermostaten zu aktivieren --> "auto"
Nachteil: wenn FHEM nicht läuft, läuft die Heizung nicht.

Direktes peering HM-TC-IT-WM-W-EU (SensorR2) und HM-LC-SW1-FM (SD2)
set SensorR2_SwitchTr peerChan 0 SD2 single set
funktioniert noch nicht alleine, weil SwitchTr nicht on und off liefert sondern eigentlich 100% oder 0%.
Erst das setzen eines Registers liefert den Erfolg:
set SD2 regSet shCtOn ltLo SensorR2_SwitchTr 
Jetzt interpretiert der Aktor die Werte vom Thermostaten.
Mit dem attr expert lässt sich die Detaildarstellung der readings (Register) am Aktor einstellen.
Achtung: Zwischen der Eingabe beider Befehlszeilen muss man etwas Zeit lassen. Der Aktor muss das peering abgeschlossen haben, ansonsten bekommt man einen Fehler das getconfig nicht abgeschlossen wurde.

Hintergrund

Hier ist der Zusammenhang ganz gut erklärt. Gleichzeitig auch ein Beispiel für die Steuerung einer Fussbodenheizung durch Ersatz der existierenden mechanischen Zweipunktthermostate und Steuerung der Stellmotoren über Homematic Schaltaktoren.

Samstag, 24. Januar 2015

Homematic Funkschaltaktor mit Leistungsmessung ARR Bausatz - Erfahrungsbericht

Dieser Bausatz ist wahrscheinlich der Einfachste den es gibt. Man braucht nur einen Torx 6 Schraubendreher. Normale 6 mm bits sind zu dick, man braucht 4 mm bits oder einen extra Schraubendreher, da die Schraubenköpfe im eingedrehten Zustand ziemlich tief liegen.
Ansonsten beschränkt sich das ganze auf das Einlegen einer Leiterplatte in zwei Gehäusehälften. Die größte Herausforderung ist das vorherige Aufstecken des Plastestößels auf den Microtaster, der könnte nämlich leicht beschädigt werden. Das interessanteste am Bausatz ist eine ausführliche Beschreibung des Aktors und der Leistungsmessung. Die habe ich so noch nie bei einem Homematic Gerät gesehen.
Typischerweise sind ja die Entsorgungshinweise, dass Ausführlichste an den Handbüchern.

Ich habe den Aktor mit
set HMLAN1 hmPairSerial  xxxxxxxxxx
angelernt. Das klappt irgendwie wieder nicht mit einem Mal. Das Gerät und die Kanäle werden zwar angelegt, aber die readings sind nicht komplett und es gibt eine Fehlermeldung. Der Aktor blinkt eine ganze Weile orange als Quittung des Anlernprozesses.
Ich habe erstmal alles umbenannt, in einer Zeile sieht das so aus:

rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_Sw PSD3_Sw;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_Pwr PSD3_Pwr;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenPwr PSD3_SenPwr;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenI PSD3_SenI;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenU PSD3_SenU;rename CUL_HM_HM_ES_PMSw1_Pl_xxxxxx_SenF PSD3_SenF

Also ein zweites set ... hinterher und dann ist nach kurzer Zeit alles komplett.
Dabei blinkt der Aktor in zwei Sequenzen, zunächst einige Male Orange, als Abschluss kurz einmal grün. Nach einer kurzen Pause blinkt er wieder mehrfach orange.

Ich habe noch ins Logfile geschaut. Wie ich schon bei den Rolladenaktoren festgestellt habe, kommen jede Menge Fehlermeldungen. Diese nach dem ersten Anlernversuch:

Error: CUL_HM_HM_ES_PMSw1_Pl_xxxxxx has no TYPE
Diese nach dem Zweiten:
PERL WARNING: Use of uninitialized value in string eq at FHEM/Blocking.pm line 89.

Ich mache wieder ein shutdown restart, dann werden die Meldungen aufhören.
Achtung! Vorher save config nicht vergessen!

Mal sehen ob ein Update was bringt, ich traue mich das seit Tagen nicht, da die Entwickler irgendwie intensiv umbauen und eine Reihe Probleme berichtet werden.

Freitag, 23. Januar 2015

HM-SEN-MDIR-SM - Aufbauhinweise

Ich habe mir den HM-SEN-MDIR-SM als Bausatz gekauft. Beim Aufbau des zweiten Bausatzes fand ich einige Unterschiede zwischen Realität und Beschreibung. Als Grundlage dient die dem Bausatz beiliegende Beschreibung.
Die zweifarbige LED hat eine andere Form als in der Beschreibung. Die LED in meinen bisherigen beiden Bausätzen sieht so aus:
Der mittlere Kontakt ist die gemeinsame Kathode der lange Äußere die Anode für Rot und der kurze Äußere die Anode für Grün. Am "roten" Anschluss ist das Gehäuse abgeflacht. Der Widerstand R13 versorgt die rote LED, daran kann man sich orientieren. Siehe rechtes Bild der bestückten LED.






Um die LED in der richtigen Höhe einzulöten, steckt man einfach wieder die Sensor Platine auf die Stifte soweit wie es geht (Abstand ca. 3 mm). Die LED rutscht beim löten von selbst in die richtige Position, mit dem Gehäuse so tief wie möglich in die Sensor Platine. Das Gehäuse der LED ist lang genug um wie gefordert noch ausreichend durch die Sensor Platine zu ragen wenn die Sensor Platine später im Abstand von 5 mm fest gelötet wird.

Bei der Inbetriebnahme blinkt die LED nicht einmal kurz rot sondern ein paar Sekunden sehr hektisch, dann einmal grün und bleibt dann 75 Sekunden orange. Danach läuft der Gehtest, das Gerät kann aber schon angelernt werden.

Mittwoch, 21. Januar 2015

Schaltaktor für Kleinspannnung

Ich habe eine LED Beleuchtung versuchsweise von einer Schaltsteckdose HM-LC-SW1-PL auf einen Niederspannnungsschaltaktor HM-LC-SW1-BA-PCB umgestellt. Die Ergebnisse möchte ich gerne vorstellen.


Der Schaltaktor braucht eine Versorgungsspannung zwischen 5-15 Volt und kann Verbraucher bis 20 Volt und 3 Ampere schalten. Die Masse zwischen Versorgung und Verbraucher ist verbunden. Für 12 Volt LED Stripes kann man idealerweise Versorgung des Moduls mit dem Verbraucher koppeln.


Ein kurzer Test mit einer kleinen LED Leselampe brachte interessante Ergebnisse:


Eingangsspannung Leselampe
9,62 V
Spannungsabfall über Mosfetschalter
25 mV
Leistungsaufnahme 12 Volt Netzteil bei Last
6,36 Watt
Leistungsaufnahme 12 Volt Netzteil bei Leerlauf
0,15 Watt
Leistungsaufnahme SchaltSteckdose bei “aus”
0,57 Watt
Leistungsaufnahme SchaltSteckdose bei “ein” ohne Last
0,57 Watt


Die Schaltung der LED Beleuchtung ändert sich grundlegend, bisher wurde das 12 Volt Netzteil primär geschaltet, für die Standby Leistung war die Steckdose verantwortlich. Jetzt ist das 12 Volt Netzteil immer angesteckt und ist für die Standby Leistung verantwortlich, der LED Streifen wird ja sekundär auf der Niederspannungsseite geschaltet.


Sehr interessant: Die Standbyleistung der Steckdose ist 3 mal höher als der Standby Verbrauch des LED Netzteils. Wer also meint die LED Lampe hat keinen richtigen Ausschalter, man müsse hier was ändern - sollte da noch mal drüber nachdenken.


Der Test überzeugt auf der ganzen Linie, also wird sofort richtig umgebaut und ein zweiter Schalter bestellt :-)
Die Taste auf der Platine dient zum Anlernen und als Toggle. Die LED ist einfarbig und leuchtet nur beim Anlernen, im Normalbetrieb wird Strom gespart. Spielt zwar hier keine Rolle, aber es ist ja ein Batterie Aktor.


Anlernen an der FHEM
Den HM-LC-SW1-BA-PCB mit dem Netzteil verbinden.


set HMLAN1 hmPairForSec


Taster am HM-LC-SW1-BA-PCB > 4 sec drücken bis die rote LED blinkt.
Das Anlernen klappt sofort, nach wenigen Sekunden ist die Definition in FHEM komplett


Die bisherige Steckdose umbenennen


rename LichtKuR SD4


Dem neuen Schaltaktor den gewohnten Namen geben


rename <HM-LC-SW1-BA-PCB> LichtKuR


Damit funktionieren alle Routinen in FHEM wieder wie gewohnt.


Jetzt noch die Fernbedienung neu peeren damit es auch mal ohne FHEM klappt.
Den neuen Aktor bekannt machen, toggle Funktion der Taste 8 auf der FB12 festlegen.


set FB12_Btn_08 peerChan 0 LichtKuR single set


Nach dem kurzen Drücken der Anlerntaste der Fernbedienung schaltet die Taste den neuen Aktor und die bisherige Steckdose. Am Aktor muss nichts gedrückt werden. Jetzt noch den bisherigen Aktor rausnehmen, die Steckdose wird ja in Zukunft anderweitig eingesetzt.


set FB12_Btn_08 peerChan 0 SD4 single unset


Wieder Anlerntaste auf der Fernbedienung drücken und fertig. Die Steckdose muss lediglich am Strom sein! Es braucht keine Taste gedrückt werden. Hätte man auch in einem Vorgang machen können.


  • Der Schaltaktor(~17-23€) ist preiswerter als eine Steckdose (~40€)
  • Energieeinsparung Standby 30 % (0,35 Watt, 19 h /Tag --> 2,4 kWh / ca. 50 cent pro Jahr )
  • Kein Schaltgeräusch, bei der Steckdose klickt ein Relais, der Mosfet macht es lautlos.


Ich finde der HM-LC-SW1-BA-PCB bestens geeignet für LED Beleuchtung.

Ich habe mittlerweile den zweiten Aktor eingebaut, und habe dazu noch ein paar Ergänzungen:

set HMLAN1 hmPairSerial xxxxx

geht bei diesem Aktor irgendwie nicht, keine Ahnung warum. Also darf man den nicht "unerreichbar" einbauen.
Ich habe also jetzt zwei Schaltsteckdosen "recycled", da liegt die eigentliche Einsparung. Meine Bemerkung oben zur Energieeinsparung sind mehr als Scherz zu sehen. Das lautlose Schalten ist durchaus angenehm, obwohl das klacken der Steckdosen nie gestört hat. Insgesamt sind weniger Bauteile verbaut und es hängt weniger am 230 Volt Netz. Es gibt keinen mechanisch bewegten Schalter (Relais) mehr. Damit ist Zuverlässigkeit wahrscheinlich etwas besser.

Ich wollte noch darauf hinweisen, dass das Netzteil kurzschlussfest sein sollte, sonst müsste man das ganze noch absichern.

Hier noch ein paar Bilder zum Gehäuse:

Da alles oben auf dem Schrank liegt, habe ich eine einfache 74 mm Aufputz Verteilerdose genommen.

Wer es schöner braucht, kann einen Lampen Baldachin nehmen, z.B. dieser hier,
30 x 70 mm. Er kann auch flacher sein, dann entfernt man die Antennenstützen und legt die Drahtantenne mit möglichst viel Abstand zur Platine an den Gehäuserand.

Montag, 19. Januar 2015

FHEM Sprachausgabe über Sonos

FHEM bietet ein ziemlich gutes Sonos Modul an. Sprachausgabe ist eine tolle Sache, vor allem Textmeldungen die gesprochen werden.
Die Einrichtung lief per Wiki Eintrag
Zur Sprachausgabe ist es wichtig ein paar Attribute im Sonos Modul zu setzen:

  • targetSpeakDir
  • targetSpeakURL

Nach ersten Tests fällt auf, das offenbar jedesmal die Text2Speech Engine bemüht wird, auch wenn man immer wieder den gleichen Text ausgibt. Dabei ändert sich das MP3 File, was einmal erzeugt wurde nicht.

Offenbar muss das Caching aktiviert werden, dass ist kurz und knapp im Wiki mit zwei weiteren Einträgen beschrieben. So sieht es am Ende aus:


Dazu muss laut Wiki noch ein Perl Modul installiert werden
sudo cpan install Digest::SHA1

Macht man es mit der cpan Methode sagt mir die Installationsroutine zwischendurch mal:

  New CPAN.pm version (v2.05) available.
  [Currently running version is v1.960001]
  You might want to try
    install CPAN
    reload cpan

Das bedeutet wohl, man sollte cpan aktualisieren. Wie war mir nicht sofort klar, funktioniert aber im Prinzip so:
Es gibt zunächst mal eine cpan Shell, also ssh auf den Raspberry und dann

cpan
install cpan
reload cpan

Allerdings bekomme ich weitere Fehler und denke mir: Man muss nicht immer das neueste haben...
_____________________________

Nachgedacht:

Irgendwie ist mir das mit cpan immer unsympathisch und ich habe noch ein bisschen nach Hintergründen gesucht.

Das SHA1 Modul wurde aus den Paketen der Linux Distis entfernt, warum auch immer. Das aktuelle Modul nennt sich SHA.pm, dass kann mit dem üblichen Paketmanager apt-get installiert werden

sudo apt-get install libdigest-sha-perl

Danach steht /usr/lib/perl5/digest das Modul SHA.pm.
Die cpan Methode bringt eine Datei in /usr/local/lib/perl/5.14.2/Digest mit dem Namen SHA1.pm.

Ich habe hier einen Workaround gefunden, wie man eine Art Wrapper von SHA1 nach SHA schreiben kann. 
Reiner hat aber im Sonos Modul aber einen Fallback eingebaut. Es funktioniert mit SHA und SHA1.

Vielleicht sehe ich das wieder mal zu kompliziert, ich hätte aus Sicht des einfachen Anwenders nur gerne eine klare Methode, und die Installation mit apt-get erscheint mir als nicht Linux Freak irgendwie komfortabel, logisch und einfach...

Sonntag, 18. Januar 2015

Fernbedienung und Schaltersensoren von Homematic umziehen

Wenn man Fernbedienungen, Sensoren oder Schalterschnittstellen von der Homematic CCU ablernt (löscht) und z.B. bei FHEM anlernt (pairing) dann meldet das Gerät einmalig zwei Fehler, Beide Einträge bleiben in den Readings stehen und verwirren etwas.


Man kann diese Einträge einfach löschen:

deletereading <devicename> sabotageAttack
deletereading <devicename> sabotageAttackId

Oder alle mit einem mal, auswählbar in der Oberfläche

set <devicename> clear attack

Freitag, 16. Januar 2015

Alternatives Gehäuse für Bewegungsmelder

Der Bewegungsmelder von Homematic HM-SEN-MDIR-SM ist offiziell für innen und außen geeignet. Klar, wenn für außen dann sollte er auch für innen gehen. Das Gehäuse ist sehr technisch und für außen oder den Feuchtraum (Keller) sicher auch optisch ok. Im Innenraum ist es eher "schwierig", um nicht zu sagen: geht bei den meisten wahrscheinlich gar nicht. Ich habe eine passende Alternative gefunden, die ich kurz vorstellen möchte. So sieht es fertig aus:
Im Obi gibt es von Lux-Tools einen Baldachin als Deckenabzweigdose für die Lampe für knapp 3€. Leider gibt das Schild und die Bezeichnung nichts her, es gibt auch unterschiedliche Ausführungen in gleicher Verpackung:
 Selbst die gewählte Dose gibt es in zwei weiß Tönen, ich glaube sogar es gab noch andere Farben. Ich wollte aber weiße Dose auf weißer Wand.
Der aufwendigste Part ist die zentrale Bohrung von 25 mm. Ich habe vorsichtig mit einem Forstnerbohrer von hinten(innen) ein 25 mm Loch hinein gebohrt. Wie gesagt ganz, ganz vorsichtig, sonst ist der Deckel hin und Daumen und Zeigfinger auch!!!
Kurz bevor die Schneiden des Bohrers durchstechen kann man aufhören mit bohren und vorsichtig mit dem Daumennagel den kleinen Deckel nach innen drücken. Dadurch hat man keine Ausplatzungen an den Front. Jetzt vorsichtig mit dem Cutter den Grat der innen entstanden ist wegscheiden und mit einem kleine Stück 240iger Schleifpapier glätten. Am Besten von innen, denn dort kann etwas mehr weg. Wenn man sich die Linse genau anschaut, ist sie etwas konisch:
Die kleinen grauen Abstandshalter passen nicht mit  ins Gehäuse, die werden entfernt, die Antenne wird so gebogen, dass sie beim Einbau möglichst weit von der Elektronik entfernt ist und am Gehäuse anliegt. Die Sache wird ziemlich maßgeschneidert wie man erkennen kann. Die Platine hält in dem Deckel nur durch die Plastelinse, die wie gesagt leicht konisch ist und etwas nachgibt. Man darf das Loch also nicht zu groß ausschleifen. Ganz unten im Bild sieht man noch die Innengestaltung des Gehäuse Bodens so kann man Sich beim Kauf orientieren und man hat genug Löcher um den fertigen Melder an der Wand zu befestigen. Die Fläche ist auch groß genug um zwei Powerstrips auf glatten Flächen einzusetzen.

Der Batteriewechsel ist spielend einfach, da der Deckel einen Bajonettverschluss hat. Sinnigerweise hat der Hersteller die Seriennummer nur in Form eines nicht lesbaren mini QR Code auf der Platine und den Barcode Aufkleber draußen am grauen Gehäuse. Der Aufkleber ist ziemlich stabil, ich habe ihn abgelöst und neben die Linse auf die Platine geklebt. Beim Außeneinsatz ist der wahrscheinlich schnell verwittert und drinnen geht der WAF mit samt dem Gehäuse gegen null :-)

Sonos und fhem

Seit 4 Tagen habe ich das Modul Sonos auf meinem fhem.
Es läuft aus meiner Sicht bisher super. Ich hatte den Plan die Klingel damit zu realisieren. Momentan bin ich skeptisch:

  1. Es gibt eine Verzögerung von ca. 1,5 Sekunden zwischen Taster Betätigung und hörbarem Sound.
  2. Meine Sonos Lautsprecher sind draußen nicht hörbar, dass Feedback für den der klingelt fehlt.
Die Systemlast ist sichtbar gestiegen seit dem ich das Modul aktiviert habe. CPU Belastung und RAM Nutzung sind wesentlich gestiegen.

Mittwoch, 7. Januar 2015

Jalousie Aktoren von Homematic nach Fhem umziehen

Seit ca 3 Jahren habe ich eine CCU1 und zahlreiche Aktoren von Homematic im Einsatz. Vor allem die Steuerung der Rollläden hat mich hauptsächlich dazu bewogen zu Hause eine Automatisierung einzubauen. Da von Anfang bekannt war, das die CCU1 auch schon mal an die Grenze kommt, war ich "sparsam" mit dem Einsatz von Aktoren. Ich habe zum Beispiel zwei Rollläden an Fenstern die unmittelbar nebeneinander liegen mit einem Aktor und Trennrelais angesteuert.
Im letzten Monaten wurde fleißig mit Fhem und dem RaspberryPi experimentiert. Jetzt zu Weihnachten war es nun so weit: Umzug aller Aktoren auf Fhem.
Dabei gab es ein paar interessante Erkenntnisse, die ich hier mal aufschreiben will.
Ich habe übrigens, damit alles nahtlos läuft, die Rollos aus Fhem zunächst über einen Dummy per XML-API angesteuert. Ich konnte damit die Zeitsteuerung auf der Fhem einrichten und in der CCU deaktivieren um ein Fallback zu haben.
Man kann erstmal mit einem Aktor testen :-)

Umzug der Aktoren

Voraussetzung: Es wird kein Benutzerdefinierter Sicherheitsschlüssel verwendet!
Die Seriennummer des Aktor "aufschreiben"
Den Aktor in der CCU löschen aber nicht auf Werkseinstellung zurücksetzen. Damit bleiben die Einstellungen in den Registern erhalten, z.B. die Laufzeiten für hoch und runter. Auch direkte peerings bleiben so erhalten.
Dann mit

 set hmlan1 hmpairserial xxxxxx 

an fhem anlernen. Das muss eigentlich immer zweimal gemacht werden. Beim ersten mal sind nicht alle readings gefüllt, auch wenn man lange wartet. Besonders das laut Wiki sichere Zeichen für erfolgreiches pairing (PairedTo und R-pairCentral) sind nicht gefüllt.
Es dauert etwas, ich habe immer gewartet bis im Status eine Fehlermeldung steht und habe dann den Befehl zum pairen einfach wiederholt. Danach gab es im Status immer noch eine Fehlermeldung, die verschwindet nach der ersten Betätigung. Wenn die Readings gefüllt sind ist alles in Ordnung.

Jetzt wird der Aktor umbenannt mit dem Befehl:

 rename AlterName NeuerName

Es ist gut die Umbenennung möglichst zeitnah zu machen.

Jetzt noch die Darstellung der Schaltflächen ändern, korrekterweise ist der Standard on (es ist wird hell) und off (es wird dunkel) auch wenn das für Rollläden nicht sehr logisch ist. z.B.:

 attr <devicename> eventMap on:auf off:zu
 attr <devicename> webCmd up:pct:down

Mit dieser Einstellung von webCmd kann man über den Slider das Rollo an jede beliebige Stelle fahren. Mit den Knöpfen up und down kann man das Rollo in 10% Schritten bewegen.
Man kann sich viel Zeit sparen, wenn man an einem Aktor alle Attribute einstellt und testet bis man mit der Darstellung zufrieden ist. Jetzt macht sich eine durchgehend saubere Namensgebung bezahlt. Man kann nämlich

 attr Rollo.*  eventMap on:auf off:zu
 attr Rollo.*  webCmd up:pct:down

eingeben, wenn alle Rollos mit dem gleichen Namensteil beginnen. Spätestens hier war für mich klar alle Gerätenamen mit einem Namen der Funktion entsprechend zu beginnen.

Mit dem Attribute devStateIcon kann man die Symbole in der Weboberfläche umdefinieren, damit die Rollos nicht als Lampen angezeigt werden. Die Bilddateien liegen im Pfad /opt/fhem/www/images und sie werden entsprechend dem Inhalt von State automatisch gewählt. So werden die Zustände für die Anzeige umdefiniert:
 attr Rollo.* devStateIcon auf:shutter_open zu:shutter_closed

Abschluß

Irgendwie passiert in Fhem ein "unklarer Rest", d.h. das Logfile wird plötzlich mit Meldungen von Error <Jalousieaktor> has no Type und "...Blockig.pm .." voll geschrieben.
Da ist ein ein shutdown restart eine gute Idee :-)

Hier noch ein paar Beispiele um mehrere Rollo Aktoren anzusprechen

 set Rollo.* zu   schließt alle Rollos
 set Licht.* off    schaltet das Licht im ganzen Haus aus

Die Rollos lassen sich für automatische Ablaufsteuerungen auch filtern.

 set RolloAZ.*:FILTER=NAME=RolloAZR 50

filtert ein einzelnes Rollo aus dem Arbeitszimmer heraus und setzt dies auf halbe Höhe. Ok das macht vielleicht wenig Sinn, man hätte es auch direkt ansprechen können.

 set Rollo.*:FILTER=NAME=RolloAZ.* 50

filter alle Rollos im Arbeitszimmer heraus und setzt diese auf halbe Höhe.
Man kann auch Ausnahmen filtern.

 set RolloAZ.*:FILTER=NAME!=RolloAZR zu

fährt alle Rollos außer das Rechte im Arbeitszimmer herunter.


Montag, 5. Januar 2015

fhem - im SVG Plot die Kurve verschieben

Will man die dargestellte Messwertkurve optisch verändern, verschieben oder stauchen / strecken, muss man mit dem Feld Function arbeiten.
Der Ausdruck $fld[i] liefert die aktuelle Zeile des Logfiles durch Leerzeichen geteilt als "Array" mit 0 beginnend.
$fld[3]+4 liefert den vierten Wert (der dritte oder vierte ist je nach Sensor der interessante) und verschiebt die Darstellung um 4 nach oben, also bei Temperatur erscheint die Kurve 4 grd wärmer.

Eine weitere Möglichkeit der Manipulation wurde hier behandelt.

Nexus 5 über ADB sideload aktualisieren

Ich habe ein neues Nexus 5, welches offenbar aus der weltweiten Abverkaufsmenge stammt. Der deutsche Shop des französischen orange.com lieferte zügig kurz vor Weihnachten offenbar eines der letzten "roten" Exemplare mit Express DHL aus Edinburgh. Das Nexus "Rot" stellte sich überraschend als leuchtend orange heraus, was mir durch ungenügende Information nicht klar war.
Das Nexus trägt die SKU LGD821.ASW3RD. Mein schon vorhandenes Schwarzes trägt die SKU LGD821.ADE3BK. Keine Ahnung wofür SW wirklich steht. Nach dem ISO Ländercode gibt es dieses Kürzel nicht. Schweden wäre vielleicht nahe liegend, Schweden hat aber das Kürzel SE...
Auf alle Fälle will dieses Exemplar freiwillig kein Lollipop OTA Update machen, keine wirkliche Ahnung warum. Mein deutsches Exemplar bekam das Update Anfang Dezember.

Das manuelle Update ist kein Hexenwerk, hier eine kurze Anleitung. Die Anleitung erhebt keinen Anspruch auf vollständig oder ganz ausführlich. Bebilderte Anleitung findet man im Web viele, umfangreicher, variantenreicher. Das ist genau der Vorgang der so bei mir funktioniert hat:

Meine Vorbereitung:
  • Nexus 5, Android Version 4.4.4, Build Nummer KTU84P
  • Voll geladen
  • Datensicherung, sollte man immer vor einem Systemupdate machen. Es gehen aber beim Update keine Daten verloren!
  • PC mit Windows 8.1 64 bit
  • USB ADB Treiber
  • OTA Image "LRX21O from KTU84P" direkt von Google
  • USB Kabel
Die USB ADB Treiber gibt es hier zum download:
adb Tools und Treiber
Diese funktionieren auf Anhieb. Auf der Seite von Androidpit findet man eine umfangreichere Beschreibung auch für andere Fälle, z.B. wenn man das Factoryimage flashen will.

Es gibt das Update als Image offiziell bei Google zum download:
OTA Image RX21O-from-KTU84P
Achtung! Bei mir brach das download immer ohne Fehlermeldung ab. Die Zip Datei hatte dann  eine Größe von ca. 280 MB - es müssen aber 490 MB sein! Bei mir brachte die Verwendung eines Downloadmanagers Abhilfe (Free Download Manager 3.9.4). Um das Zip zu testen kann man einfach mit einem Doppelklick mal hineinschauen.

Schritt für Schritt
  • Verzeichnis anlegen, zum Beispiel: d:\NexusUpdate
  • Die Zip Datei adb-tools_treiber hier hin entpacken
  • Das OTA Image in den Pfad d:\NexusUpdate kopieren/verschieben. Die Zip Datei nicht entpacken!
  • Nexus 5 in den Recovery Mode versetzen, dazu folgendes am Nexus 5 tun: 
  • Auschalten
  • Einschaltknopf drücken und gedrückt halten und sofort den Lautstärke-leiser Knopf drücken und gedrückt halten - bis das Nexus startet und den Boot Manager anzeigt
  • Mit der Lautstärketaste den Recovery Mode auswählen und mit dem Einschaltknopf  auswählen.
  • Nach kurzer Pause erscheint der Androide mit einem Ausrufezeichen, jetzt wieder Einschaltknopf drücken, halten und kurz(!) Lautstärketaste lauter drücken.
  • Jetzt "apply update from ADB" auswählen (Lautstärketasten und mit Einschaltknopf quittieren)
  • Im Unterpfad D:\NexusUpdate\adb-tools_treiber\adb-treiber die msi Datei starten und die Treiber installieren. 
  • Nexus 5 mit USB Kabel anstecken.
  • Am PC Eingabeaufforderung starten (Windows taste +x)
  • mit cd D:\NexusUpdate\adb-tools_treiber\adb-tools in den Tools Pfad wechseln
  • adb sideload D:\NexusUpdate\c eintippen und die Tab Taste drücken. Der Dateiname sollte auf den Namen des OTA Image vervollständigt werden, man erspart sich so das tippen und umbenennen.
  • enter drücken, der Kopiervorgang startet. Dies sieht man nur am PC.
  • Anschließend erfolgt automatisch die Updateinstallation. Den Erfolg sieht man an Hand der Bildschirmausgaben auf dem Nexus 5. 
  • Nach Abschluss am Nexus noch reboot system auswählen und quittieren.
Nach dem Neustart findet das Nexus 5 von selbst das aktuelle OTA Update auf die Version 5.01 und hoffentlich in Zukunft alle weiteren Updates.

Sonntag, 4. Januar 2015

perl - Besonderheit beim if

Ich bin über etwas gestolpert was zwar funktionierte mir aber nicht unbedingt logisch erschien. Deswegen habe ich es mal nachgelesen und schreibe es hier mal auf:

Die Sprache perl kennt die nachgestellte Bedingung. Als Beispiel die Umsetzung der Aufgabe: "schalte am Wochenende den Schalter an"
Beide Ausdrücke sind in der Wirkung identisch:

 {if ($we) {fhem("set SW01_Sw01 on")}}
 {fhem("set SW01_Sw01 on") if ($we)}

Wie man sieht, wird es etwas sparsamer :-)

Hier gibt es weitere Erklärungen:
http://de.selfhtml.org/perl/sprache/bedingt.htm#nachgestellte

Fhem - zeitgesteuert Routinen aktivieren und deaktivieren

Will man z.B. eine Heizungs- oder Lüftungssteuerung zeitgesteuert pausieren, gibt es wie immer viele Wege.
Eine Möglichkeit ist die Routine zu deaktivieren. Hat man z.B. einen THRESHOLD "Lueftung" definiert kann man mit
 set Lueftung deactivated
die Lüftungsregelung sofort ausschalten. Allerdings in dem Status wie sie ist: Lüftung an oder aus!
Deshalb unbedingt entweder mit set Schalter off den zuständigen Schalter selbst ausschalten.
 set Lueftung deactivated, set Schalter off
Oder das Modul THRESHOLD anweisen es in jedem Fall zu tun, mit einem Attribute, welches entweder das erste oder zweite Kommando enthält. Je nach dem wie THRESHOLD definiert ist.
attr Heizung setOnDeactivated cmd1_gt
attr Lueftung setOnDeactivated cmd2_lt
Für die Aktivierung gibt es einfach den Gegenspieler active, ist das Modul Threshold aber mit der Führung eines Sensors definiert, dann muss mit external aktiviert werden!

In einem doif sieht das Ganze so aus:
 define di_Lueftung DOIF ([8:00-23:00]) (set Lueftung external) DOELSE ((set Lueftung,Heizung deactivated),set Schalter off)
Man kann auch einfach einen Zielwert setzen bei dem die Regelung nicht "anspringt". Bei einer Heizung z.B.:
 set Heizung desired 5
Erst unter 5 °C würde die Heizung einschalten, wenn der Wert nicht erreicht werden kann dann nie.

Samstag, 3. Januar 2015

fhem - Umbennen von Sensoren

Das Umbenennen von Sensoren läuft in Fhem etwas "unvollständig". Das Log File erhält zwar einen neuen Namen, aber erst nach einem Neustart wird wieder hineingeschrieben. Die vorhanden Einträge im Logfile werden nicht geändert, wenn man schon ein paar Wochen logs hat, dann muss man mit Suchen/Ersetzen das Logfile bearbeiten.

Deshalb bitte so vorgehen:

 rename AlterNameSensor NeuerNameSensor
 shutdown

Logfile kopieren / bearbeiten / zurückkopieren
Besitzer bzw. Rechte korregieren! Ansonsten ärgert man fhem sehr!

Zum Abschluss Fhem per Telnet neu starten

 sudo /etc/init.d/fhem start