USV für Raspberry Pi

Begonnen von DerPeter, 14 Juni 2015, 11:38:49

Vorheriges Thema - Nächstes Thema

DerPeter

Hallo Ascos,

ooh - da weiß ich auch nicht weiter oder sollte ich sagen Herzlichen Glückwunsch?
Die Testergebnisse würde ich so interpretieren:

1) i2cdetect:
alle für die PIco relevanten Adressen 68-6b sind vorhanden und der RTC-Treiber arbeitet (uu) = OK

2) Script testpicosmbus.pl:
Hier hatte ich alle 3 Adressen über Perl via "Device::SMBus" angesprochen und jeweils ein paar Beispielwerte ausgelesen + ausgegeben. Das heißt die CPAN-Installation hat geklappt (sagtes Du ja) und funktioniert auch. Weiterhin wurden die gelesenen Werte formatiert ausgegeben - klappte auch.

Das fhem-Script macht nichts anderes. Warum es nicht zieht, ist die Frage ...
Hattest Du nach Installation von "Device::SMBus" das Device in fhem gelöscht und noch einmal neu angelegt?
Auf solche Tipps wie fhem / rpi durchstarten bist Du sicher schon selbst gekommen.
Dateirechte des Scripts halte ich für unwahrscheinlich, kann aber auch geprüft werden.

Mein Startwert für das Polling-Interval ist 60sec (So kamen ja die Fehlermeldungen im Log). Kann aber zum Test auch z.B auf 5sec runtergestellt werden. Die Readings müssen nach dem Pollen sofort angezeigt werden.

Soweit erstmal... 
Peter
rpi b+ / rpi2 b; cul868; jeelink; MAX! (ht, wt, fk, et); lacrosse;

Ascos

Hi,

also ich hab noch ein bisschen rungetestet.
Ich glaube, es ist wirklich ein Rechte Problem. Dein SKript zeigt nur etwas an, wenn ich es mit SUDO ausführe. Ohne kommt nur eine Fehlermeldung. Könnte sein, das FHEM das gleiche Problem hat?
Eigentlich hat mein FHEM-Benutzer schon Root-Rechte.

Das hier meinte dein SKript, als ich es ohne SUDO ausführte:
pi@raspberrypi ~ $ perl /home/pi/testpicosmbus.pl

===========================
Testing SMBus with UPS PIco

0x69 ->UPS PIco Module Status Registers Specification
Unable to open I2C Device File at Device::SMBus=HASH(0xaec7d0)->I2CBusDevicePath at (eval 14) line 18
        (in cleanup) Unable to open I2C Device File at Device::SMBus=HASH(0xaec7d0)->I2CBusDevicePath at (eval 14) line 18
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

DerPeter

Hallo Ascos,

ZitatIch glaube, es ist wirklich ein Rechte Problem.
Ja, da wird das Problem liegen. Auf meinem rpi funktioniert das Script auch als User "pi".

Laut Deiner Fehlermeldung fehlt der Zugriff auf die Ressource: '/dev/i2c-1' (I2CBusDevicePath => '/dev/i2c-1' in Zeile 18)
'/dev/i2c-1' müßte für den jeweiligen User (pi, fhem, ...) zugänglich sein bzw gemacht werden.
Meine fhem-Installation ist User-mäßig Standard.

Gruß, Peter
rpi b+ / rpi2 b; cul868; jeelink; MAX! (ht, wt, fk, et); lacrosse;

DerPeter

Hallo Ascos,

nach einigem Grübeln ist mir wieder eingefallen, wie ich das mit den Rechten für I2C damals auf meinem System geregelt hatte.
Hatte ich schon wieder vergessen ...

Ich bin über "udev" gegangen. Man legt im Verzeichnis /etc/udev/rules.d eine Datei "98-i2c.rules" an und trägt 'SUBSYSTEM=="i2c-dev", MODE="0666"' ein.
echo 'SUBSYSTEM=="i2c-dev", MODE="0666"' > /etc/udev/rules.d/98_i2c.rules
reboot


Alternativ kann man natürlich auch den/die gewünschten User der Gruppe "i2c" hinzufügen.

Hinweise gibts auch hier: Link bischen runter, kurz vor dem Abschnitt "Konfiguration"

Gruß, Peter
rpi b+ / rpi2 b; cul868; jeelink; MAX! (ht, wt, fk, et); lacrosse;

Ascos

ES GEHT!!!! :)

Vielen Dank :)

Hab es hinbekommen, habde dem User die entsprechenden Rechte gegeben.
Vielen, vielen Dank für deine Hilfe und Gebuld :)
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

Wernieman

Kleiner Hinweis:
Aus grundsätzlichen Sicherheitsüberlegungen würde ich HW grundsätzlich nicht für alle Schreibbar machen!

Die Idee mit UDEV ist gut, besser aber, wenn man dann eine passende Gruppe anlegt, also z.B.

SUBSYSTEM=="i2c-dev", MODE="0664", GROUP="i2c"

Gruppe muß natürlich existieren .. und dann fhem in der Gruppe i2c hinzufügen. Hatte mal etwas Ähnliches hir für USB gepostet. Zum Vergleich:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664", GROUP="usb"

Grundsätzlich:
Nur soviel rechte vergeben wie nötig.
- 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

DerPeter

Hallo Wernieman,

ZitatAus grundsätzlichen Sicherheitsüberlegungen würde ich HW grundsätzlich nicht für alle Schreibbar machen!
...
Grundsätzlich: Nur soviel rechte vergeben wie nötig.
Stimmt ...

Das Vorgehen mit udev hatte ich damals aus einer Installationsanleitung für bmp180 in fhem übernommen und dann auch so belassen.
fhem in die Gruppe i2c aufnehmen ist eindeutiger und sicherer.

Gruß, Peter
rpi b+ / rpi2 b; cul868; jeelink; MAX! (ht, wt, fk, et); lacrosse;

ecki58

#22
Hallo Leidensgenossen,

Ihr seit ja schon weiter wie ich.
Ich habe jungfräulich ein Raspbain auf meinen Pi2 gespielt und versuche die USV zum laufen zu bringen.
Leider ohne jeglichen Erfolg.
Gerade startet der Pi2 das dritte mal. Das geordnete Herunter fahren ist das einzige was gerade mal klappt.
Dabei leuchten die CHG und BAT Led immer. UPS Led blinkt nach dem Start von picofssd.py. und CHG geht aus.
Ich habe zwei Terminalfenster offen. In dem wo ich picofssd.py. gestartet habe geht keine Kommandozeile mehr.
Im anderen Terminalfenster gucke ich ob die SW läuft.
Da steht :
2544 pts/0    S+    0:00  sudo python /home/pi/picofssd.py
2545 pts/0    S+    0:00  python /home/pi/picofssd.py
2546 pts/0    S+    0:00  Grey  --color=auto picofssd.py

Und es blinkt UPS  sowie die BAT leuchtet immer.
Ziehe ich jetzt den USB Stecker raus geht alles aus.

Was ist hier grundsätzlich falsch???
Ich bin Ratlos und bitte um Hilfe

Gruß
Eckhard

ecki58

#23
So wie es aussieht  (BAT dauerlicht) ist der Akku leer. Gemessen etwa 2,7V im Leerlauf.
Unter Last an der PicoUSV nur noch 1,6V. Wie wird der Akku eigentlich geladen und wie lange dauert das?
Nun habe ich auch mal die USB-Spannung gemessen und mußte feststellen das die gerade mal 4,8V hat.
Anderes Netzteil benutzt und die Spannung hatte 5,2V unter Last! Jetzt wird entlich der Akku auch geladen (CHG an).

Gruß
Eckhard

core75

Hallo zusammen,

ich bin auch mit der PIco USV "gesegnet" aber mittlerweile etwas ratlos, warum das Ding einfach nicht will.

Mein System: Pi2 mit Raspbian (2015-05-05, Kernel 3.18), PIco USV, Firmware 0x25 ( http://www.pimodules.com/_zip/PIco_Firmware_Update_Pack_0x25.zip )

Bevor ich den Thread hier mit dem zumülle, was ich schon alles versucht habe besser zurück auf Anfang. Deshalb erst eine einfache aber grundsätzliche Frage.

Ist eine Installation mit oder ohne Device Tree sinnvoller? Hab schon beide Wege versucht aber funktionert hats nicht wirklich.

Vielleicht kann mir da jemand helfen.

alpha1974

#25
Alter Thread, aber immer noch aktuelles Thema (jedenfalls bei mir  ;D)

Inzwischen gibt es ja die Hardware-Version 1.1 des UPS-Pico-Moduls mit der derzeit aktuellen Firmware 0x59. Mit dieser Firmware kann man u.a. auslesen, ob der Batterie-Charger aktiviert ist (siehe hier, ACHTUNG: CHG ist auch ON, wenn die Lade-LED aus und der Akku voll ist).

Ich habe das Modul aus dem ersten Post entsprechend erweitert und außerdem noch Readings für die beiden Hardware-Keys des Moduls (Key A und Key B) eingebaut. Da die Buttons nach ihrer Betätigung jeweils durch ein I2C-Write von 0x01 auf 0x00 zurückgesetzt werden müssen, habe ich außerdem noch entsprechende SET-Möglichkeiten eingebaut.

Vermutlich sind meine Erweiterungen nicht besonders schön gelöst, aber ich habe mich mangels ausreichender Programmierkenntnisse einfach an dem schon vorhandenen Code orientiert und eigentlich nur per Copy-/Paste die meiner Ansicht nach passenden Ergänzungen / Änderungen vorgenommen.

Wer es brauchen kann, findet meine Version im Anhang.

Gruß
alpha1974
FHEM/Z-Wave USB-Dongle + div. Devices

rainer1962

ich glaub in der neuen 98_USVPICO.pm sind die register für den charger falsch :
Added variable that can be read by user (remotely) to see if charger is activated or not

sudo i2cget -y 1 0x69 0x10

0x01 - means Charger is ON
If the CHG LED is not lit, means that charger is ON, but battery is fully charged
0x00 - means Charger is OFF


ich glaub die angegebne 16 ist falsch ..

Gruss Rainer
2xFHEM auf Raspi3,MAXLAN,HMLAN,KeyMatic,MAX Heizung,2x HM-WDS10_TH-O,3xHM-SEC-SD,3xHM Wandtaster 2-Kanal, 2xWandtaster 6-Kanal,1xHM Bewegungsmelder,4xHM EinbauActor,4x Jalousien Actor,2xEGPM2LAN,2xHM DimAktor,2xFritzbox 6840/6490,4-20ma Levelsensor-Ina219,PIP5048,Raspi2 als Floorplan,4xJeeLink

alpha1974

Bei meinen Versuchen sah es so aus, als ob es funktioniert. Ich ging davon aus, dass 0x10 hex = 16 dezimal sei.
Werde es die Tage aber nochmals testen (zur Zeit habe ich leider wenig ebensolche für technische Spielereien  :'().
FHEM/Z-Wave USB-Dongle + div. Devices

rainer1962

bei nur 16 kommt als ergebnis immer nur null ...
irgendwie läuft die Schnittstelle beim SMBus etwas anders was die Parameter betrifft.
Siehe auch Modul 'RPII2C'

LG Rainer
2xFHEM auf Raspi3,MAXLAN,HMLAN,KeyMatic,MAX Heizung,2x HM-WDS10_TH-O,3xHM-SEC-SD,3xHM Wandtaster 2-Kanal, 2xWandtaster 6-Kanal,1xHM Bewegungsmelder,4xHM EinbauActor,4x Jalousien Actor,2xEGPM2LAN,2xHM DimAktor,2xFritzbox 6840/6490,4-20ma Levelsensor-Ina219,PIP5048,Raspi2 als Floorplan,4xJeeLink

alpha1974

Sehr merkwürdig, ich habe gerade nochmals nachgesehen: CHG LED ist an (dauergrün).
Hardware ist ein RPI2 mit UPS Pico in der HW Rev. 1.1 (direkt von pimodules, mit eingelötetem Buzzer und Reset-Pin).

pi@raspberrypi:~ $ sudo i2cget -y 1 0x69 0x10
0x01
pi@raspberrypi:~ $ sudo i2cget -y 1 0x69 16
0x01


State der USV unter FHEM:
USV Actual state of UPS_PIco

Firmware: 0x59

RealTimeClock (UTC): 01.02.2016 18:18:39

PoweringSource: RPI
Charger: on
Battery Voltage: 4.2 V
Raspberry Voltage: 4.97 V
Battery Temperature: 31 °C
Fan Temperature: 0 °C (only valid if Fan installed)

User LED blue: 0
User LED red: 0

KeyA: 0
KeyB: 0

ErrorCode: 00000000

UPS PIco variables (see manual):
sta_counter: 255 (StayAliveCounter)
fssd_batime: 69 sec (FileSaveShutdownTime on powerloss)
fssd_tout: 32 sec (Timeout needed  for the FSSD procedure)
lprsta: 3 sec (Low Power Restart Time)
btto: 3 sec (Battery Powering Testing Timeout)
bmode: 2 (Integrated Buzzer Mode)
fmode: 0 (Integrated Fan Running Mode)
fspeed: 0 (Integrated Fan Speed)
xbmc: 0 (XBMC Mode)
FHEM/Z-Wave USB-Dongle + div. Devices