Neues Modul i2cBMP180

Begonnen von Dirk, 21 Juli 2013, 23:52:20

Vorheriges Thema - Nächstes Thema

betateilchen

Ich habe in meinem Modul das Thema jetzt dadurch gelöst, dass ich überhaupt nicht mehr mit try/catch arbeite, sondern mit eval {}.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Hallo zusammen,

ich verstehe noch immer nicht, warum meine udev Regel nicht funktioniert.
Das
SUBSYSTEM=="i2c-dev" definiert doch, mit welchem Gerät etwas zu tun ist und MODE="0666"gibt doch rw Zugriff für owner, group und world. Oder könnte ich auch OWNER="fhem" bzw. GROUP="root" arbeiten? Dann könnte ich aber gleich das chown ... von oben verwenden ...
Oder wäre der Parameter NAME=i2c-0 besser geeignet?
Muss ich mal nach und nach probieren. Allerdings wartet das Display immer noch auf die Inbetriebnahme, es funktioniert noch weniger mit dem kurzen Verbinder ...

Gruß PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

die korrekte Zeile für die rules Datei besteht nur aus den zwei Teilen

SUBSYSTEM=="i2c-dev", MODE="0666"

Bitte in udev keine Experimente machen, wenn Du nicht genau weißt/verstehst, was Du da tust!

Wichtig ist:

1.) die Datei an der richtigen Stelle anlegen! Die muss in das Verzeichnis /etc/udev/rules.d
2.) den owner auf root:root setzen
3.) am Ende der Zeile den Zeilenumbruch nicht vergessen
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

ok, das Ding heißt
-rw-r--r-- 1 root   34 Jul 30 21:45 98-i2c.rules
und der Inhalt ist
SUBSYSTEM=="i2-dev", MODE="0666"

(Zeilenumbruch hat gefehlt, Regelname war mit Unterstrich).

Aber es tut leider immer noch nicht.

Ich lasse jetzt das chmown im fhem Startskript, aus basta!
Die udev Regel habe ich in /opt/fhem/backup verschoben für alle Fälle ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

Ob Unterstrich oder Bindestrich im Regelname ist egal, die kann auch Friedrich heissen...

so sieht das bei mir aus: -rw-r--r-- 1 root root   34 Jul 23 18:08 98_i2c.rules

Hast Du den udev Dämon nach der Änderung auhc wirklich neu gestartet?

/etc/init.d/udev restart

Alternativ: den raspi neustarten

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Also die Leerzeile am Ende der Datei ist zumindest bei mir unrelevant, da nicht vorhanden und trotzdem funktioniert die Regel bei mir.
Kannst du mal im Syslog schauen ob es da irgendwelche Hinweise dazu gibt.

ZitatAllerdings wartet das Display immer noch auf die Inbetriebnahme, es funktioniert noch weniger mit dem kurzen Verbinder ...
Was bedeuted das? Was für ein Fehlerbild?

Gruß
Dirk

betateilchen

Zitat von: Dirk schrieb am Di, 30 Juli 2013 22:11Also die Leerzeile am Ende der Datei ist zumindest bei mir unrelevant,

das KANN schon sein, aber ich würde bei Konfigurationsdateien unter Linux diesbezüglich nie die Hand ins Feuer legen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Hallo zusammen,

so, nun habe ich das neue Modul mal installiert. Die Plot Definition bekomme ich auch umdefiniert. Meinetwegen auch mit sed temperatur durch T usw. ersetzt. Aber wie bekomme ich bitte die zwei Zeilen per shell script in eine Zeile rein?
alt:
2013-08-09_20:10:24 BMP180 temperature: 33.2
2013-08-09_20:10:24 BMP180 pressure: 994.9
neu:
2013-08-09_20:19:48 BMP180 T: 33.2 P: 994.9 P-NN: 1023.1Geht das überhaupt? Und ja, im oberen fehlt der Luftdruck NN (da war einfach altitude noch nicht definiert). Für Vorschläge bin ich dankbar ...

Edit2:
google ist mein Freund:
cat rpi* | sed 'N;s/\n/ /g' | sed 's/pressure/P/g' | sed 's/temperature/T/g'Allerdings muss ich in der zweiten Zeile noch das Datum und BMP180 wegbringen ...

Korrekterweise sollte aber das stateformat Attribut so
attr BMP180 stateFormat Temperatur: temperature °C, Luftdruck (altitude m ü. NN): pressure hPa, Luftdruck (NN): pressure-nn hPaheißen ...
Allerdings geht das Ersetzen von ° durch ° nicht, ist das bei html nicht notwendig?

Edit1:
Folgende Fehlermeldung kommt auf der Konsole:
Character in 'C' format wrapped in pack at /usr/local/lib/perl/5.14.2/HiPi/Device/I2C.pm line 270.
Und die bisher coolste (Fehlermeldung auf der Konsole):
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for fhem:
Könnte das mit den für I2C notwendigen root Rechten zusammenhängen?

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Dirk

ZitatUnd die bisher coolste (Fehlermeldung auf der Konsole):
Die habe ich auch noch nicht gesehen. Bei welcher Aktion kommt die?

PeMue

so
cat rpi* | sed 's/.*pressure/P/g' | sed 'N;s/\n/ /g' | sed 's/temperature/T/g' > /tmp/rpi* geht es.
Erklärung:
das erste sed: sucht in einer Zeile alle Zeichen vor pressure (.*) und ersetzt dieses durch P, alles was danach kommt, bleibt
das zweite sed: nimmt zwei Zeilen, sucht nach dem Zeilenende und ersetzt das durch ein Leerzeichen
das dritte sed: sucht wiederum in einer Zeile temperature durch T

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

Zitat von: Dirk schrieb am Fr, 09 August 2013 22:20
ZitatUnd die bisher coolste (Fehlermeldung auf der Konsole):
Die habe ich auch noch nicht gesehen. Bei welcher Aktion kommt die?

Das ist eine ganz normale Standardmeldung aus sudo, wenn sudo nicht korrekt konfiguriert ist oder der aktuelle Benutzer keine sudo Rechte hat.

https://wiki.debian.org/sudo


---
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Zitat... oder der aktuelle Benutzer keine sudo Rechte hat.
Das würde aber dann doch heißen
- der user fhem braucht für eine Funktion sudo Rechte und
- er hat diese nicht.
Korrekt?

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

ich hab doch keine Ahnung, was Du da tun willst
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

... und ich möchte doch nur wissen, warum bei mir diese Fehlermeldung kommt.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Michael

Moin

Brauche eure Hilfe.

Ich bekomme den BMP180(085) nicht richtig zum laufen.
Habe alles nach dieser Anleitung (Raspberry+Pi+Mini-Luftdrucksensor+BMP180+%2842%29) gemacht.


(siehe Anhang / see attachement)

Beim ersten suchen bekomme ich keine Adresse.
Scheinbar bekomme ich von P5 keine Antwort.

Und wenn ich das in Fhem eintrage :
define BMP180 I2C_BMP180 /dev/i2c-0
attr BMP180 oversampling_settings 1
attr BMP180 poll_interval 5
attr BMP180 route_i2c0_to_p5 1

stürtzt Fhem ab.

Habe schon alles versucht was hier im Forum auf taucht.
Bitte um Hilfe
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP