Wie Thermoelement-Verstärker MAX31855 in Fhem einbinden

Begonnen von exot, 21 Oktober 2015, 08:47:30

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
also jetzt weiß ich auch nicht weiter. Bei Dir scheint das qx in Perl grundsätzlich nicht zu funktionieren. Keine Ahnung, was da wirklich schiefläuft.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
ich habe jetzt bei mir noch etwas herumexperimentiert. Anscheinend ist das Kommandozeilenfeld etwas kleinlich...
In etwa so müsste es gehen:

{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";;qx($cmd)}

Allerdings ist der User fhem kein "sudoer", daher geht das erstmal auch nicht.  Ich bin mir nicht sicher, ob es eine gute Idee ist, fhem zu einem "sudoer" zu machen. Sicherer ist wahrscheinlich das hier:

sudo usermod -a -G kmem fhem

(Das in der Konsole eingeben.)
...und dann mal im FHEM-Kommandofeld das hier probieren:

{my $cmd="/usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";;qx($cmd)}

Gruß,
   Thorsten

FUIP

exot

Hallo Thorsten,
Ist hier ein Lichtblick zu sehen
File "/home/pi/Adafruit_Python_MAX31855/examples/temperatur.py", line 10, in <module>

2015.10.23 18:05:45 3: HM485_QueueStepFailed: Call step
2015.10.23 18:05:45 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:05:51 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:05:51 3: HM485_QueueStepFailed: Call step
2015.10.23 18:05:51 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:05:57 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:05:58 3: HM485_QueueStepFailed: Call step
2015.10.23 18:05:58 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:06:04 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:06:04 3: HM485_QueueStepFailed: Call step
2015.10.23 18:06:04 3: HM485: RESPONSE TIMEOUT for 0001129C
Traceback (most recent call last):
  File "/home/pi/Adafruit_Python_MAX31855/examples/temperatur.py", line 10, in <module>
    sensor = MAX31855.MAX31855(CLK, CS, DO)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_MAX31855-1.5.0-py2.7.egg/Adafruit_MAX31855/MAX31855.py", line 72, in __init__
    self._spi = SPI.BitBang(gpio, clk, None, do, cs)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-0.9.3-py2.7.egg/Adafruit_GPIO/SPI.py", line 167, in __init__
    gpio.setup(sclk, GPIO.OUT)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-0.9.3-py2.7.egg/Adafruit_GPIO/GPIO.py", line 188, in setup
    pull_up_down=self._pud_mapping[pull_up_down])
RuntimeError: No access to /dev/mem.  Try running as root!
2015.10.23 18:06:10 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:06:11 3: HM485_QueueStepFailed: Call step
2015.10.23 18:06:11 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:06:17 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:06:18 3: HM485_QueueStepFailed: Call step
2015.10.23 18:06:18 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:06:24 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:06:24 3: HM485_QueueStepFailed: Call step
2015.10.23 18:06:24 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:06:30 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:06:31 3: HM485_QueueStepFailed: Call step
2015.10.23 18:06:31 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:06:37 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:06:38 3: HM485_QueueStepFailed: Call step
2015.10.23 18:06:38 3: HM485: RESPONSE TIMEOUT for 0001129C

Gruß Michael

Thorsten Pferdekaemper

Hi,
hast Du das hier gemacht:
sudo usermod -a -G kmem fhem
???
Gruß,
   Thorsten
FUIP


Thorsten Pferdekaemper

...und bringt das log danach immer noch die Fehlermeldung?
FUIP

exot

Hallo Thorsten,
Ich hatte vor abfragen des Logfile´s
"sudo usermod -a -G kmem fhem"
in die Konsole eingegeben und danach den abgebildeten Logfile aufgerufen.
Habe jetzt nochmal Deinen Code in Fehm eingegeben.
das ist das Ergebnis:
2015.10.23 18:46:34 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:46:40 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:46:41 3: HM485_QueueStepFailed: Call step
2015.10.23 18:46:41 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 18:46:47 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 18:46:47 3: HM485_QueueStepFailed: Call step
2015.10.23 18:46:47 3: HM485: RESPONSE TIMEOUT for 0001129C
Traceback (most recent call last):
  File "/home/pi/Adafruit_Python_MAX31855/examples/temperatur.py", line 10, in <module>
    sensor = MAX31855.MAX31855(CLK, CS, DO)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_MAX31855-1.5.0-py2.7.egg/Adafruit_MAX31855/MAX31855.py", line 72, in __init__
    self._spi = SPI.BitBang(gpio, clk, None, do, cs)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-0.9.3-py2.7.egg/Adafruit_GPIO/SPI.py", line 167, in __init__
    gpio.setup(sclk, GPIO.OUT)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-0.9.3-py2.7.egg/Adafruit_GPIO/GPIO.py", line 188, in setup
    pull_up_down=self._pud_mapping[pull_up_down])
RuntimeError: No access to /dev/mem.  Try running as root!
2015.10.23 18:46:53 3: HM485: Initialisierung von Modul 0001129C

Gruß Michael

Thorsten Pferdekaemper

Hi,
tja, das muss sich wohl mal jemand anschauen, der sich in Linux besser auskennt als ich. Das ist jetzt ein Berechtigungsproblem. Der User fhem darf nicht auf /def/mem zugreifen. Ich dachte, dass das durch die Änderung des Benutzers erledigt ist, ist es aber anscheinend nicht.
Gruß,
   Thorsten
FUIP

exot

Hallo Thorsten,
Wenn das ein Installationsproblem sein sollt könnte ich den PI ja neu installieren,
was denkst Du?
Gruß Michael

exot

Habe gerade Fhem neu gestartet.
Kannst Du in diesem Auszug was Verwertbares entdecken?
2015.10.23 19:16:12 3: HM485_QueueStepFailed: Call step
2015.10.23 19:16:12 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:16:18 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:16:19 3: HM485_QueueStepFailed: Call step
2015.10.23 19:16:19 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:16:24 0: Server shutdown
2015.10.23 19:16:24.260 0: HM485d: Server stopped ...
2015.10.23 19:16:24 3: hm485: Can't terminate HM485d with PID  2247.
2015.10.23 19:16:28 1: Including fhem.cfg
2015.10.23 19:16:28 3: telnetPort: port 7072 opened
2015.10.23 19:16:28 1: HMLAN_Parse: HMLAN1 new condition disconnected
2015.10.23 19:16:28 3: Opening HMLAN1 device 192.168.178.32:1000
2015.10.23 19:16:28 3: Can't connect to 192.168.178.32:1000: Connection refused
2015.10.23 19:16:29 3: HM485: HM485: Loading available device files
2015.10.23 19:16:29 3: HM485: =====================================
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_central.pm
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_generic.pm
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw14_dr.pm
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr.pm
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr_V3_02.pm
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_12_fm.pm
2015.10.23 19:16:29 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm_V3_02.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_sr_fm.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr_V3_02.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_dim1l_dr.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr_V3_02.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_sen_sc_12_dr.pm
2015.10.23 19:16:30 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_virtual.pm
2015.10.23 19:16:31 3: WEB: port 8083 opened
2015.10.23 19:16:31 3: WEBphone: port 8084 opened
2015.10.23 19:16:31 3: WEBtablet: port 8085 opened
2015.10.23 19:16:32 2: eventTypes: loaded 665 events from ./log/eventTypes.txt
2015.10.23 19:16:34 2: fronthem: ipc listener opened at port 16384
2015.10.23 19:16:38 2: HM485: Assigned HMW_IO_12_Sw7_DR_LEQ1286311 (0001129C) to hm485
2015.10.23 19:16:38 3: HM485: Warte auf Initialisierung Gateway
2015.10.23 19:16:39 1: Including ./log/fhem.save
2015.10.23 19:16:40 1: usb create starting
2015.10.23 19:16:41 3: Probing CUL device /dev/ttyAMA0
2015.10.23 19:16:42 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.10.23 19:16:42 3: Probing FRM device /dev/ttyAMA0
2015.10.23 19:16:47 1: usb create end
2015.10.23 19:16:47 0: Featurelevel: 5.6
2015.10.23 19:16:47 0: Server started with 69 defined entities (version $Id: fhem.pl 9141 2015-08-27 19:04:33Z rudolfkoenig $, os linux, user fhem, pid 2900)
2015.10.23 19:16:48 3: hm485: Connect to HM485d delayed for 5 seconds
2015.10.23 19:16:48 3: hm485: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device /dev/ttyUSB0 --localPort 2000
2015.10.23 19:16:48 3: hm485: HM485d was started with PID:  2913
2015.10.23 19:16:48 3: HM485: Warte auf Initialisierung Gateway
2015.10.23 19:16:50 3: ipc fronthem:127.0.0.1:39073 (ws): ws alive with pid 2901
2015.10.23 19:16:53 3: HM485: Warte auf Initialisierung Gateway
2015.10.23 19:16:53 3: Opening hm485 device localhost:2000
2015.10.23 19:16:53 3: hm485 device opened
2015.10.23 19:16:53 3: hm485: connected to device localhost:2000
2015.10.23 19:16:53 3: hm485: Lan Device Information
2015.10.23 19:16:53 3: hm485: Protocol-Version: 01
2015.10.23 19:16:53 3: hm485: Interface-Type: HMW-SOFT-GW
2015.10.23 19:16:53 3: hm485: Firmware-Version: 0.2.2
2015.10.23 19:16:53 3: hm485: Serial-Number: SGW0123456
2015.10.23 19:16:53 3: hm485: Initialize the interface
2015.10.23 19:16:58 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:16:59 3: HM485_QueueStepFailed: Call step
2015.10.23 19:16:59 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:17:05 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:17:05 3: HM485_QueueStepFailed: Call step
2015.10.23 19:17:06 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:17:12 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:17:12 3: HM485_QueueStepFailed: Call step
2015.10.23 19:17:12 3: HM485: RESPONSE TIMEOUT for 0001129C
2015

Gruß Michael

Thorsten Pferdekaemper

Nein, neu Starten oder neu Installieren bringt's nicht. Ich denke mal, dass es so gedacht ist, dass /dev/mem nicht gerade jeder zugreifen kann. Du könntest noch versuchen, ein "chmod a+r /dev/mem" zu machen. Das müsste eigentlich sicher sein. Wenn das Programm direkt auf /dev/mem schreibt, dann ist es eh etwas seltsam.
Gruß,
   Thorsten
FUIP

exot

Hallo Thorsten,
"chmod a+r /dev/mem" da kam die Meldung Operation nicht erlaubt.
Habe dann "sudo bash" und anschließend "chmod a+r /dev/mem" eingegeben.
Am Log aber keine Veränderung.
2015.10.23 19:32:31 3: HM485_QueueStepFailed: Call step
2015.10.23 19:32:31 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:32:37 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:32:38 3: HM485_QueueStepFailed: Call step
2015.10.23 19:32:38 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:32:44 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:32:44 3: HM485_QueueStepFailed: Call step
2015.10.23 19:32:44 3: HM485: RESPONSE TIMEOUT for 0001129C
Traceback (most recent call last):
  File "/home/pi/Adafruit_Python_MAX31855/examples/temperatur.py", line 10, in <module>
    sensor = MAX31855.MAX31855(CLK, CS, DO)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_MAX31855-1.5.0-py2.7.egg/Adafruit_MAX31855/MAX31855.py", line 72, in __init__
    self._spi = SPI.BitBang(gpio, clk, None, do, cs)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-0.9.3-py2.7.egg/Adafruit_GPIO/SPI.py", line 167, in __init__
    gpio.setup(sclk, GPIO.OUT)
  File "/usr/local/lib/python2.7/dist-packages/Adafruit_GPIO-0.9.3-py2.7.egg/Adafruit_GPIO/GPIO.py", line 188, in setup
    pull_up_down=self._pud_mapping[pull_up_down])
RuntimeError: No access to /dev/mem.  Try running as root!
2015.10.23 19:32:50 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:32:51 3: HM485_QueueStepFailed: Call step
2015.10.23 19:32:51 3: HM485: RESPONSE TIMEOUT for 0001129C
2015.10.23 19:32:57 3: HM485: Initialisierung von Modul 0001129C
2015.10.23 19:32:58 3: HM485_QueueStepFailed: Call step
2015.10.23 19:32:58 3: HM485: RESPONSE TIMEOUT for 0001129C

Gruß Michael

Thorsten Pferdekaemper

Tja, dafür weiß ich zumindest keine schnelle Lösung.
FUIP

exot

das heißt, das Problem ist der MAX Baustein.
Es gibt ja noch die Möglichkeit diesen:
https://www.abelectronics.co.uk/p/17/ADC-Pi-V2---Raspberry-Pi-Analogue-to-Digital-converter
Baustein einzusetzen. Gibt es damit Erfahrungen?
Gruß Michael

Thorsten Pferdekaemper

Nein, das Problem ist auch nicht der MAX-Baustein.
Versuchen wir's vielleicht doch mal per sudo.
Am Ende der Datei /etc/sudoers findest Du wahrscheinlich folgende Zeile:

pi ALL=(ALL) NOPASSWD: ALL

Füge da mal noch eine Zeile für fhem an, so dass es so aussieht:

pi ALL=(ALL) NOPASSWD: ALL
fhem ALL=(ALL) NOPASSWD: ALL

Danach dann das hier im FHEM-Kommandofeld:

{my $cmd="sudo /usr/bin/python /home/pi/Adafruit_Python_MAX31855/examples/temperatur.py";;qx($cmd)}

Gruß,
   Thorsten


FUIP