Hallo allerseits,
nachdem ich in einem anderen RPi-Bastelprojekt gute Erfahrungen (auch bezüglich WAF ;D) mit diesem Teil hier https://blink1.thingm.com (https://blink1.thingm.com) gesammelt habe und ich es dort nicht mehr brauche, würde ich es jetzt gerne in meine FHEM-Installation einbinden. Die Idee ist, es als eine Art RGB-Warnleuchte zu verwenden, wenn grade mal der Touchscreen aus ist (z.B. Rot=Batteriewarnung eines HM-Sensors, Blau=S-Bahn-Störung,...).
Nachdem ich hier im Forum nichts dazu gefunden habe und es für das Teil eine recht breite OpenSource Library-Unterstützung gibt - unter anderem für Linux (https://blink1.thingm.com/libraries/ (https://blink1.thingm.com/libraries/)) - habe ich beschlossen, das mal anzugehen. Kann ja so schwer nicht sein...
Libraries existieren u.a. für
- C/C++
- Java
- Python
- Linux kernel
Wobei ich mich mit Java nicht so gut auskenne.
Was wäre der beste Weg dafür?
Bzw. wo muss ich mich überall einlesen? https://forum.fhem.de/index.php/topic,18962.msg116644.html#msg116644 (https://forum.fhem.de/index.php/topic,18962.msg116644.html#msg116644) kenn ich schon... ;)
Muss es denn unbedingt Perl sein (damit kenn ich mich noch gar nicht aus) oder ginge auch ein C-Progrämmchen oder Linux-Skript?
Bin für Anregungen und/oder einen Schubs in die richtige Richtung dankbar.
Gruss Micha
Für ein richtiges perl fhem Modul siehe https://wiki.fhem.de/wiki/DevelopmentModuleIntro (https://wiki.fhem.de/wiki/DevelopmentModuleIntro)
Aber es scheint ja auch ein Commandline Tool dafür zu geben, das kann ja auch aus fhem heraus aufgerufen werden, siehe SHELL Befehle in der commandref (http://fhem.de/commandref_DE.html#command).
Hallo kaihs,
vielen Dank für den Tip.
Ich hab es jetzt so hinbekommen:
define Blink1 dummy
attr Blink1 devStateIcon on:SchalterOn@red:off off:SchalterOff@#CC6666:on set_on:SchalterOn@#CC6666:set_on set_off:SchalterOff@red:set_off
attr Blink1 fp_Aussen 181,683,0,
attr Blink1 room Experiment
define act_on_Blink1 DOIF ([Blink1] eq "on") ({system("sudo /opt/fhem/blink1-tool --on >> $currlogfile 2>&1 &")}) DOELSE ({system("sudo /opt/fhem/blink1-tool --off >> $currlogfile 2>&1 &")})
attr act_on_Blink1 room Experiment
So landen auch die Terminalausgaben im FHEM-Logfile.
Knackpunkt war dann, dass das sudo (notwendig auf dem RPi für den Zugriff auf das USB-Device) aus FHEM raus nicht funktioniert.
Schließlich hat es dann geklappt, nachdem ich das Tool samt Pfad dafür freigegeben habe. Also Shell aufmachen, dann:
sudo visudo
eintippen, dann im File ganz unten ALL ALL = NOPASSWD: /opt/fhem/blink1-tool
einfügen und speichern.
Durch Antippen des Dummy wird Blink(1) ein- und wiederausgeschaltet :-)
Gruss Micha
Genau das hatte ich auch gerade überlegt wie ich den blink(1) einbinde. Perfekt!
Damit du die Commands nichts als super user (sudo) ausführen musst einfach udev rules verwenden:
https://github.com/todbot/blink1/blob/master/linux/51-blink1.rules Erklärung direkt in der Datei. Funktioniert wunderbar und man spart sich sudo.
Hallo moontear,
das hat bei mir (auf einem Rpi 3/Jessie) nicht funktioniert. :(
Welches Betriebssystem verwendest Du? Und - verwendest Du das Command-line Tool oder den Mini-HTTP-Server?
Gruß Micha
Ebenfalls Jessie auf einem Rpi2.
Das hat bei mir auf anhieb funktioniert. Alternativ / zusätzlich kannst du auch den FHEM Benutzer in die tty Gruppe tun: https://forum.fhem.de/index.php?topic=12037.0
Mit den Berechtigungen kannst du auch ohne FHEM probieren, einfach mit einem nicht root Benutzer probieren das blink1-tool auszuführen. sudo solltest du nie benutzen müssen. Bei mir ist der fhem Benutzer in der tty Gruppe und die udev rules ziehen auch - kann man einfach überpfüfen wenn man den USB Stick rauszieht und wieder reinzieht und ob die Berechtigungen dann 666 sind, wie diese udev rules das vorsehen.
Ich benutze aktuell das Commandline Tool nach deiner Vorlage aber denke auch gerade über den Mini HTTP Server nach um das ganze von außen steuerbar zu machen.