Neues Modul: CO2-Sensor co2mini

Begonnen von henryk, 03 Oktober 2015, 22:38:33

Vorheriges Thema - Nächstes Thema

fireball

Hi, also ich habe das Modul jahrelang an nem raspberry2b laufen gehabt und jetzt wo ich auf den 4rer gewechselt bin und neueres betriebssystem geht das perl-script nicht mehr, welches den server zur verfügung stellt...

Ich habe nochmal alles von vorn gemacht, laut anleitung:
https://github.com/jliebich/RaspberryPiNotes/blob/master/co2mini.md

bis zum Punkt: startup/shutdown Skript für co2mini_server
Funzt soweit, läßt sich einrichten,

pi@raspberrypi:/etc/init.d $ sudo service co2mini status
● co2mini.service
   Loaded: loaded (/etc/init.d/co2mini; generated)
   Active: active (running) since Sat 2021-01-16 20:19:30 CET; 1s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1738 ExecStart=/etc/init.d/co2mini start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/co2mini.service
           └─1744 /usr/bin/perl -w /home/pi/co2mini/co2mini_server.pl /dev/co2mini0 20000

Jan 16 20:19:30 raspberrypi systemd[1]: Starting co2mini.service...
Jan 16 20:19:30 raspberrypi co2mini[1738]: Started new instance of co2mini server with pid 1744
Jan 16 20:19:30 raspberrypi systemd[1]: Started co2mini.service.


dann mache ich einen reboot und dann öffnet sich der Server nicht mehr...

pi@raspberrypi:~ $ sudo service co2mini status
● co2mini.service
   Loaded: loaded (/etc/init.d/co2mini; generated)
   Active: active (running) since Sat 2021-01-16 20:20:00 CET; 1min 52s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 382 ExecStart=/etc/init.d/co2mini start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/co2mini.service
           └─448 /usr/bin/perl -w /home/pi/co2mini/co2mini_server.pl /dev/co2mini0 20000

Jan 16 20:20:00 raspberrypi systemd[1]: Starting co2mini.service...
Jan 16 20:20:00 raspberrypi co2mini[382]: Started new instance of co2mini server with pid 448
Jan 16 20:20:00 raspberrypi systemd[1]: Started co2mini.service.
Jan 16 20:20:28 raspberrypi co2mini[382]: co2mini wrong data format received or checksum error at /home/pi/co2mini/co2mini_server.pl line 110.


liegt das an der HW des neuen Raspberrys???
ist doch alles komisch...

fireball

#46
Hi... also ich bin nochmal komplett durch...

wenn der Serverprozess steht, dann klappts auch mit dem Fhem-Modul, mit dem Reconnect.

Drückt man aber in FHEM den Reconnect Button im laufenden Betrieb oder restartet Fhem oder weiß der Geier noch... stirbt der Serverprozess vom dem PERL Script und dann kriegt FHEM auch den Reconect nicht mehr hin und es geht nix mehr...

Jan 16 20:55:19 raspberrypi co2mini[26083]: send: Cannot determine peer address at /home/pi/co2mini/co2mini_server.pl line 89.

Irgendwas kann das co2mini_server.pl nicht mehr ab seid dem wechsel.... so ist mein gefühl...

ich habe das script jetzt mal manuell aufgerufen... läuft... reconnect von Fhem... läuft...

2x reconnect button nochmal... das Serverscript bricht ab...
Jan 16 20:55:19 raspberrypi co2mini[26083]: send: Cannot determine peer address at /home/pi/co2mini/co2mini_server.pl line 89.

Da liegt der Hase im Pfeffer, viell. kann es irgendwie nicht alle verbindungen oder mehrere ab!?

VG
René

fireball

Hallo Freunde,

ich habe es jetzt bei mir wieder zum laufen gebracht, allerdings nutze ich die Variante, dass bei mir der CO2-Sensor direkt per USB am Raspi hängt.
Ich habe das ganze jetzt nochmal durchdrungen und folgende Erfahrungen gemacht:

1. CO2 Modul wird über eine UDEV Rule am Raspi bekannt gemacht
2. Es gibt einen PERL Serverkompomente der auf dem Device lauscht und dann selber einen Port aufmacht und die Daten anzubieten
3. FHEM-Modul greift auf den Port zu, wenn man es mit IP:Port aufruft und liest die Daten.
4. Es gibt ein Init-Script, welches den Serverprozess (2) beim Reboot startet.

Punkt 3 ging bei mir nicht mehr, weil Punkt 2 nicht mehr stabil läuft.

Ich habe mich jetzt ein wenig mit den UDEV Rules beschäftigt und die im ersten Post erwähne gelöscht 90-co2mini.rules

Ich habe jetzt folgende angelegt:
pi@raspberrypi:~ $ cd /lib/udev/rules.d/
pi@raspberrypi:/lib/udev/rules.d $ ll 99-co2dev.rules
-rw-r--r-- 1 root root 281 Jan 17 13:00 99-co2dev.rules
pi@raspberrypi:/lib/udev/rules.d $ more 99-co2dev.rules

# co2mini
ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="hidraw*", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a052", GROUP="plugdev", MODE="0666", SYMLINK+="co2mini%n", TAG+="systemd"
ACTION=="remove", ENV{ID_SERIAL_SHORT}=="1.40", ENV{ID_VENDOR_ID}=="04d9", ENV{ID_MODEL_ID}=="a052"


Damit wird auch eine Device erzeugt unter /dev und auch wenn man den USB Stick abzieht wieder entfernt.
ACHTUNG!!!
Wenn man ohne Reboot wieder den Sensor ansteckt, dann heißt das Device co2mini1 usw... also der Counter wird hochgezählt.
Wenn man nur einen hat, dann kann man sicher das %n entfernen und eine 0 hinschreiben und der Wert fest definieren, so könnte man mehrere dran hängen, erschließt sich mir aber der Sinn nicht.
Sollte der PI allerdings rebooten, hat man immer den gleichen Namen.

Jetzt habe ich in FHEM die reconnect Version von Thomas aus diesem Link  https://forum.fhem.de/index.php/topic,41750.msg682061.html#msg682061 genommen und keine IP:Port angegeben, dann geht das Modul standardmäßig auf /dev/co2mini0

Und siehe da... es kommen wieder Werte an und läuft stabil.

Viell. hilft es dem ein oder anderen...
VG
René

The-Holgi

Hallo,
versuche auch gerade die Werte des Co2Mini mit Fhem auszulesen.
Bei mir ist das Modul an einem Raspberry Pi 2 angeschlossen, auf dem sonst nichts anderes läuft.
Fhem läuft auf einem anderen Rechner in einem Docker Container. Bin nach Anleitung von hier vorgegangen:
https://github.com/jliebich/RaspberryPiNotes/blob/master/co2mini.md
Bekomme in der konsole folgende Fehlermeldung:
May 04 15:19:09 raspberrypi co2mini[586]: co2mini wrong data format received or checksum error at /home/pi/co2mini/co2mini_server.pl line 110.

Hat vielleicht jemand eine Idee, woran das liegt?
Raspberry Pi 5

The-Holgi

#49
Hallo,
mit einer älteren Version von Raspian ist der Fehler nun weg.
pi@OscamPi:~ $ service co2mini status
● co2mini.service - (null)
   Loaded: loaded (/etc/init.d/co2mini)
   Active: active (running) since Di 2021-05-04 17:00:55 CEST; 3min 46s ago
  Process: 390 ExecStart=/etc/init.d/co2mini start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/co2mini.service
           └─437 /usr/bin/perl -w /home/pi/co2mini/co2mini_server.pl /dev/co2mini0 20000

Leider bekomme ich keine Verbindung zu fhem.
2021.05.04 16:56:59.619 3: co2: disconnected
2021.05.04 16:57:00.988 1: co2mini network error or disconnected: , disabling device
2021.05.04 16:57:00.988 3: co2: disconnected


Jemand eine Idee, könnte es an irgendwelchen Rechten liegen die fehlen?
Raspberry Pi 5

Jamo

#50
Hi,
bei mir wird der co2 mini alle 5 Sekunden ge-updated, kann man das Interval irgendwo verringern?
Ich habe sowohl im init.d also auch im FHEM modul selber geschaut, kann aber nichts finden. Mir gehts nicht ums event (event on change reading ist gesetzt), sondern um die unnötigen abfragen im 5 Sekunden interval, alle 5 Minuten reicht mir auch und beschäftigt den Rechner nicht so. . . .
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

ReiKo55

Hallo zusammen,
bei mir bleibt der co2mini im Status "connecting" hängen. Readings bekomme ich keine.
Installiert nach https://github.com/jliebich/RaspberryPiNotes/blob/master/co2mini.md
Allerdings hängt der co2mini am Pi auf dem auch Fhem läuft.

Internals:
   CFGFN     
   DEVICE     /dev/co2mini0
   FD         77
   FUUID      60fc3f5a-f33f-8dfc-33e6-53ca399a8492a8a2
   NAME       co2Monitor
   NR         814
   NTFY_ORDER 50-co2Monitor
   STATE      connecting
   TYPE       co2mini
   READINGS:
   helper:
     mode       dev
Attributes:
   room       _test

Das Gerät wird am USB erkannt. Wenn ich es austecke wechselt der Status auf "disconnected
lrwxrwxrwx 1 root root    7 Jul 24 18:30 co2mini0 -> hidraw0
crw-rw-rw- 1 root pi 244, 0 Jul 24 18:30 hidraw0


Der Service läuft
pi@raspiFhem02:~ $ sudo service co2mini status
● co2mini.service
   Loaded: loaded (/etc/init.d/co2mini; generated)
   Active: active (running) since Sat 2021-07-24 18:32:21 CEST; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4073 ExecStart=/etc/init.d/co2mini start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 2063)
   CGroup: /system.slice/co2mini.service
           └─4079 /usr/bin/perl -w /home/pi/co2mini/fhem-co2mini/co2mini_server.pl /dev/co2mini0 20000

Jul 24 18:32:20 raspiFhem02 systemd[1]: Starting co2mini.service...
Jul 24 18:32:21 raspiFhem02 co2mini[4073]: Started new instance of co2mini server with pid 4079
Jul 24 18:32:21 raspiFhem02 systemd[1]: Started co2mini.service.



Wo ist der Haken?
Gruß und danke
Reinhard
FHEM auf Pi3 +HM: HM-LAN, HM-MOD-UART, ca. 60 HM-Devices +1-Wire: Buskoppler DS1420 , DS18B20,  DS2423, DS1990, DS2401
+KNX: TPUART, SCN-BWM55.01,  SCN-P360D3.02, STXB601B/2F, TXB602F +PCA301: JeeLink +ZWave:
+Wifi-Geräte über MQTT: SONOFF, Shelly (Tasmota), NodeMCU, ESP

bejxonojo

Hallo Zusammen,

nachdem der co2mini von TFA bei Amazon für 50€ angeboten wurde habe ich auch mal zugeschlagen.
Ich betreibe den co2mini an meinem rasberry pi in dem fhem in einem docker container läuft.

Reibungslos war die Inbetriebnahme in fhem allerdings nicht.
Damit andere es etwas leichter haben habe ich unter https://forum.fhem.de/index.php/topic,116421.msg1174285.html#msg1174285 meinen Weg zum funktionierenden 38_co2mini.pm Module beschrieben.

lg Steffen

Thorsten Pferdekaemper

Hi,
ich habe mich auch mal ein bisschen mit dem Teil beschäftigt und mit den ganzen Informationen und meinen eigenen Vorstellungen das Modul ziemlich überarbeitet. Außerdem gibt es jetzt eine FHEMWiki-Seite.
Siehe auch...
https://wiki.fhem.de/wiki/Co2mini
https://forum.fhem.de/index.php/topic,125303.msg1206370.html#msg1206370

So ganz 100% ist es noch nicht, aber es funktioniert prinzipiell und ich bin noch dran.

Mit den alten Teilen (die mit Verschlüsselung) funktioniert es momentan nicht, aber ich denke, dass man das sogar "automagically" hinbekommen könnte. Falls also jemand noch so ein Teil hat, und es gerne ausprobieren will, dann helfe ich gern.

Gruß,
   Thorsten
FUIP

fireball

Hi Thorsten,

ich wäre dabei und helfe gerne, aber mein co2mini läuft mit Verschlüsselung.
Daher wäre es cool, wenn du das mit einbauen könntest.
Der ursprüngliche Programmierer hier hatte meine ich die Zeile gepostet, die man aktivieren oder aus dem Code rauslassen muss, damit es für die alten oder neuen Versionen funktioniert.
Das könnte man ja per Parameter schaltbar machen.


Vg René

Thorsten Pferdekaemper

Hi,
Zitat von: fireball am 06 Februar 2022, 22:16:04
ich wäre dabei und helfe gerne, aber mein co2mini läuft mit Verschlüsselung.
Daher wäre es cool, wenn du das mit einbauen könntest.
Der ursprüngliche Programmierer hier hatte meine ich die Zeile gepostet, die man aktivieren oder aus dem Code rauslassen muss, damit es für die alten oder neuen Versionen funktioniert.
Das könnte man ja per Parameter schaltbar machen.
ich hab's jetzt eingebaut. Das Modul sollte jetzt sogar von alleine merken, dass es entschlüsseln muss. Allerdings kann ich es selbst nicht testen. Probier's mal aus.
Gruß,
   Thorsten
FUIP

franky08

#56
Hallo, ich habe mir heute mal so ein TFA Dostmann gekauft und wollte es mit FHEM nutzen, leider kann ich außer ein disconnect nichts weiter sehen -(

define KiZi_CO2 co2mini bringt:
Internals:
   DeviceName 127.0.0.1:41042
   FUUID      62066d9e-f33f-cf17-2f69-ebdad0f24171c2f7
   NAME       KiZi_CO2
   NEXT_OPEN  1644592137.71228
   NR         303
   PARTIAL   
   STATE      disconnected
   TYPE       co2mini
   READINGS:
     2022-02-11 16:07:57   state           disconnected
   helper:
     buf       
Attributes:
   device     
   room       KiZi
   serverControl external
   serverIp   
   serverPort


unter /dev findet sich ein device co2mini0, unter /etc/udev/rules.d wurde die Datei 90-co2mini.rules mit folgenden Inhalt angelegt:
ACTION=="remove", GOTO="co2mini_end"
SUBSYSTEMS=="usb", KERNEL=="hidraw*", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a052", GROUP="dialout", MODE="0660", SYMLINK+="co2mini0", GOTO="co2mini_end"
LABEL="co2mini_end"


Eigentümer der 90-co2mini.rules ist root:root

Was ist da falsch??

VG
franky08
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

Thorsten Pferdekaemper

Hi,
stell' mal serverControl auf "fhem" und lösche serverIp und serverPort.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
anscheinend habe ich die ganze Zeit nur mit einer bereits existierenden Device-Definition getestet. Tatsächlich hat

define blabla co2mini

nicht richtig funktioniert.
Ich habe das jetzt mal korrigiert. Ein "update" sollte helfen.
Allerdings funktioniert das wahrscheinlich nicht für bereits existierende Devices. Da muss man dann wie schon beschrieben die Attribute nochmal manuell setzen bzw. löschen.
Gruß,
   Thorsten
FUIP

franky08

.... und schon funktioniert´s

Danke
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1