Wie den Rückgabewert eines Python-Skripts nach FHEM

Begonnen von TomLee, 14 April 2022, 13:38:28

Vorheriges Thema - Nächstes Thema

TomLee

Keine Ahnung in welcher Rubrik ich die Frage stellen sollte darum hier.

Hi,

spiele mit dem Gedanken einen BH1750 (vlt. später wenn ich ein Skript gefunden habe einen MAX4409) via I2C an meinem FHEM-RasPi anzuschliessen.

Wie hier beschrieben klappt das auf dem Test-FHEM (Pi0z) super einfach per MQTT, man muss nur paho-mqtt installieren, das Skript anlegen, cronjob eintragen und gut ist.

Frage mich aber ob es MQTT auf der gleichen Pi sein muss, bekomm ich den Wert ggf. genauso simple auf einem anderen Weg nach FHEM ?

Gruß

Thomas

betateilchen

Zitat von: TomLee am 14 April 2022, 13:38:28
spiele mit dem Gedanken einen (bla bla) via I2C an meinem FHEM-RasPi anzuschliessen.

Für I2C gibt es doch fertige Module, um Daten solcher Geräte in FHEM bereitzustellen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoWiemann

Und, Du hast narürlich auch schon gesucht, da ja Python und Fhem ganz neu ist - Ironie Ende.

https://forum.fhem.de/index.php?topic=56793.0
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Beta-User

...und ich habe bei sowas immer den Impuls nachzufragen, warum man unbedingt PI-GPIO's nutzen will ::) ...

Klemme einen Microcontroller dazwischen und "gut ist" (auch, wenn du mal die Plattform gegen "was gscheids" austauschen willst)...

PI-GPIO sind hochgradig "blockade-verdächtig", und wenn man mal raus hat, wie man z.B. einen Arduino programmiert, ist das viel flexibler.

Für reines lesen ist "keyValueProtocol" das Stichwort.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

@Betateilchen und JoWiemann

ehrlich gesagt bisher gekonnt ignoriert und einfach die Frage mal gestellt nachdem ich die Tage mit der I2C Schnittstelle (iVm. der Pi) nach erste Berührungen hatte. Ich les mich ein.

@Beta-User

Eigentlich wollt ich die Antwort schon vorschreiben, weil ich die Antwort erwartet habe.
Wegen der (baulichen) Gegebenheiten und der wenigen Arbeit die es macht. Der PI läuft sowieso, 30 cm weiter an der Wand sitzt eine Abzweigdose, hinter der Abzweigdose ist nach draussen gebohrt direkt in eine Alarm-Sirene. Ich hab vor einen Sensor oben in die rote Kuppel zu bauen und zu testen ob das tauglich ist. Das wär dann "vorübergehend" für den Sommer, wenn das klappt, der Ersatz für das MySensors-Gateway und der Node welche ich mal gebastelt hatte, weil ich da den LiFePO4 zu tief hab entladen lassen und ich keine Lust hab einen neuen zu kaufen der bei mir 100 % bis nächtes Jahr wieder das zeitliche segnen würde.

Beta-User

Zitat von: TomLee am 14 April 2022, 14:18:38
Wegen der (baulichen) Gegebenheiten und der wenigen Arbeit die es macht.
Na ja, wenn sowieso ein Arduino (samt Code) vorhanden ist, kannst du das doch direkt machen; die baulichen Gegebenheiten würden ja nicht ausschließen, dass der Arduino (mit einem hübschen weißen USB-Kabel verbunden) in die Abzweigdose wandert...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

Achso, und zur Arduino-Lösung, ja gefällt mir, krieg ch auch Ruckzuck gebacken, bloß hab ich keinen USB-Anschluss mehr frei und gerade keinen USB-Hub, ob ich den Sensor später am Mikrokontroller anschliesse oder an den GPIOs ist auch erstmal egal, mich interessierts ab ich brauchbare Werte hinter dem roten Plexigkas bekomme.

Und dann sind seit rd. zwei Wochen restlos alle meine Mikrokontroller, die seit Jahren nur in der Schublade liegen beschäftigt  8) ::), selbst bei meinen totgeglaubten Wemos D1 Mini hab ich den ESP12 abgelötet und direkt zum laufen bekommen.

TomLee

ZitatFür I2C gibt es doch fertige Module, um Daten solcher Geräte in FHEM bereitzustellen?

Jetzt bin ich an dem Punkt angelangt und dabei die Voraussetzungen für RPII2C zu schaffen.

Reicht es aus nur i2c-dev und i2c-bcm2708 in /etc/modules oder muss noch was speziell für den BH1750 angegeben werden ?

In der commandref  :P steht was von device_tree_param=i2c0=on,i2c1=on, ist device_tree_param nur "veraltet" und meine Einträge dtparam=i2c_arm=on und dtparam=i2c_vc=on ausreichend oder muss ich das wirklich noch so ergänzen ?

Ich kenn mich damit nicht aus und mach um so Geschichten immer einen großen Bogen, trag ich das in /etc/rc.local:

sudo chown fhem /dev/i2c-*
sudo chgrp dialout /dev/i2c-*
sudo chmod +t /dev/i2c-*
sudo chmod 660 /dev/i2c-*


unter Buster wirklich so ein ?



TomLee

Je mehr ich lese, desto größer wird der Gedanke es mit MQTT umzusetzen, paho-mqtt zu installieren schadet vermutlich nicht, eher reizte es mich jetzt damit auch mal zu befassen und das ist alles auch noch in 5-10 Minuten eingerichtet inkl. automatischer Definition vom FHEM-Device/FileLog und dem anlegen eines cronjobs für das Pythonskript.

TomLee

Ich hab jetzt einfach wiringpi installiert und durch ausprobieren haben sich alle Fragen beantwortet, bis auf wie ich die Rechte von /dev/i2c-0 wieder richtig setze nach einem Neustart.
Wie gesagt kenn ich mich damit zu wenig mit aus, kann ich einfach sudo chmod 0666 /dev/i2c-0 in der fhem.service ergänzen, muss es dann an einer ganz bestimmten Stelle stehen ?

Wernieman

Du kannst es so machen, besser währe es aber per udev zu machen.

ABER .. brauchst DU wirklich 666? Besser währe, über die Gruppe zu gehen, d.h. dem Zugreifenden User zusätzlich in die Passende Gruppe zu packen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

ZitatABER .. brauchst DU wirklich 666?

Keine Ahnung kenn ich mich nicht aus. Vor dem sudo chmod 0666 /dev/i2c-0 sahs so aus:
crw-rw---- 1 root i2c      89,   0 Apr 20 17:24 i2c-0
der user fhem war schon in der Gruppe i2c
i2c:x:998:pi,fhem
und beim definieren des RPII2C IO wurde gemeckert.

Erst nachdem ich die Rechte angepasst hatte
crw-rw-rw- 1 root i2c      89,   0 Apr 20 17:24 i2c-0
hats auch mit dem definieren des IO-Device geklappt.

Es bleibt immer noch die Frage obs egal ist wo genau der chmod-Befehl in der fhem-service steht ?

Zu udev muss ich mich erst noch einlesen.

Wernieman

Hattest Du nach ändern der Gruppe fhem restartet? Es sollte die Gruppenzugehörigkeit reichen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

Weiß ich nicht mehr.

Wenn ich jetzt die Rechte wieder so herstelle wie sie waren bekomme ich in dem Device vom Type I2C_BH1750 direkt ein I2C Error in state und im Log steht dann :

2022.04.21 16:31:29 3: Lichtsensor_Sirene I2C_BH1750_i2Rec bad sendstat: error
2022.04.21 16:31:29 3: Lichtsensor_Sirene: i2cwrite on IO_I2C failed
2022.04.21 16:31:29 3: Lichtsensor_Sirene: i2cwrite on IO_I2C failed
2022.04.21 16:31:30 3: IO_I2C: HWaccess sysopen failure: Permission denied
2022.04.21 16:31:30 3: Lichtsensor_Sirene I2C_BH1750_i2Rec bad sendstat: error
2022.04.21 16:31:30 3: IO_I2C: HWaccess sysopen failure: Permission denied
2022.04.21 16:31:30 3: Lichtsensor_Sirene I2C_BH1750_i2Rec bad sendstat: error
2022.04.21 16:31:30 3: Lichtsensor_Sirene: i2cwrite on IO_I2C failed
2022.04.21 16:31:30 3: Lichtsensor_Sirene: i2cread on IO_I2C failed



Daran ändert ein Neustart von FHEM und auch ein reboot des Pi nix.

Und jetzt ?

Wernieman

Du bist sicher, das FHEM in der Gruppe i2c ist?
2022.04.21 16:31:30 3: IO_I2C: HWaccess sysopen failure: Permission denied

was sagt "id fhem"?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html