FHEM Forum

FHEM => Sonstiges => Thema gestartet von: hobby_musiker am 10 Januar 2017, 21:57:30

Titel: Einbinden des thingm blink(1) usb stick
Beitrag von: hobby_musiker am 10 Januar 2017, 21:57:30
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

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
Titel: Antw:Einbinden des thingm blink(1) usb stick
Beitrag von: kaihs am 10 Januar 2017, 22:24:25
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).
Titel: Antw:Einbinden des thingm blink(1) usb stick
Beitrag von: hobby_musiker am 12 Januar 2017, 01:07:07
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
Titel: Antw:Einbinden des thingm blink(1) usb stick
Beitrag von: moontear am 21 Januar 2017, 19:56:35
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.
Titel: Antw:Einbinden des thingm blink(1) usb stick
Beitrag von: hobby_musiker am 22 Januar 2017, 18:19:25
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
Titel: Antw:Einbinden des thingm blink(1) usb stick
Beitrag von: moontear am 22 Januar 2017, 19:03:04
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.