Moin,
zur Raumluftüberwachung hab' ich was ganz feines gefunden (naja, ein Freund hat mich drauf hingewiesen): Ein CO2-Sensor der nicht nur grobe "gut"-"schlecht"-"schlechter"-Auskunft gibt (wie etwa der Homematic-Raumluftsensor), sondern ein numerisches Messergebnis in ppm (parts per million). Und noch schöner: Anders als in der Bedienungsanleitung behauptet, ist die USB-Schnittstelle nicht nur zur Stromversorgung da, sondern gibt ein HID-Gerät über das man die Daten empfangen kann.
Es scheint diese Geräte von vielen verschiedenen Herstellern mit unterschiedlichen Aufdrucken zu geben, wobei das Gehäuse sonst immer gleich ist. Um der Namensverwirrung zu entgehen heisst das bei mir jetzt einfach co2mini (ich glaub' den Namen hab' ich aus der Software oder so). Das reverse engineering hab' ich hier beschrieben: https://hackaday.io/project/5301-reverse-engineering-a-low-cost-usb-co-monitor
Jetzt hab' ich ein FHEM-Modul was Daten von dem Gerät empfangen kann gebaut. Installation mit
update all https://raw.githubusercontent.com/henryk/fhem-co2mini/master/controls_co2mini.txt
Das funktioniert nur mit Linux (wer den nötigen HID-Code für andere Betriebssysteme beisteuern will ist herzlich eingeladen). Um FHEM Zugriff zum Device zu geben, und einen eindeutigen Namen zu haben, sollte man in eine Datei 90-co2mini.rules in /etc/udev/rules.d anlegen mit folgendem Inhalt:
ACTION=="remove", GOTO="co2mini_end"
SUBSYSTEMS=="usb", KERNEL=="hidraw*", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a052", GROUP="plugdev", MODE="0660", SYMLINK+="co2mini%n", GOTO="co2mini_end"
LABEL="co2mini_end"
wobei man statt plugdev ggbf. eine andere Gruppe einträgt in der fhem läuft, oder statt 0660 als mode 0666 (für alle zugreifbar) angibt. Dann ist das Gerät immer unter /dev/co2mini0 (bzw. mit aufsteigender Nummer, wenn es mehrere Geräte gibt) zu finden.
In FHEM kann man das Modul dann ganz einfach benutzen:
define co2 co2mini
(benutzt per default /dev/co2mini0, wenn man ein anderes Device möchte, muss man das als zusätzlichen Parameter angeben)
Als readings bekommt man dann co2 (in ppm) und temperature (in °C). Es gibt auch noch Dekodier-Support für humidity (in %), da es verwandte Geräte mit gleichem Protokoll gibt die einen Sensor dafür haben. Ausserdem kann man das showraw-Attribut auf 1 setzt und bekommt dann alle Datenpunkte die vom Gerät gesendet werden, wobei mir für wenige klar ist, was sie bedeuten.
--
Henryk Plötz
Grüße aus Berlin
Ich habe mir das Teil mal bestellt, und werde es testen.
Dauert noch 3 Wochen bis es kommt.
Gruß
Christoph
Klasse, gerade in der Freakshow die Folge zu dem Teil nachgehört, bestellt und geguckt ... na klar, es gibt natürlich schon ein FHEM-Modul :) Danke dafür!! Ich teste es, wenn es da ist :-)
Läuft das ganze auch auf einem Raspberry Pi?
Danke & Grüße
Julian
Gesendet von iPad mit Tapatalk
Sieht sehr interessant aus, ich glaub ich bestellt auch mal eins! Ist es möglich, das Ganze auch ohne FHEM zu betreiben? Also nur ein Linux-Prozess der zyklisch den Wert abfragt und dann zB per telnet bei FHEM einliefert? So betreibe ich drei Velux-Luftmesser auf PIs ohne darauf ein ganzes FHEM laufen lassen zu müssen.
Moin,
Zitat von: vbs am 10 Januar 2016, 20:52:13
Sieht sehr interessant aus, ich glaub ich bestellt auch mal eins! Ist es möglich, das Ganze auch ohne FHEM zu betreiben? Also nur ein Linux-Prozess der zyklisch den Wert abfragt und dann zB per telnet bei FHEM einliefert? So betreibe ich drei Velux-Luftmesser auf PIs ohne darauf ein ganzes FHEM laufen lassen zu müssen.
Japp, siehe auch die Modul-Doku: https://github.com/henryk/fhem-co2mini/blob/e9d2d40474d582130b7aaa31f74488c7a8f6c765/FHEM/38_co2mini.pm#L276 (https://github.com/henryk/fhem-co2mini/blob/e9d2d40474d582130b7aaa31f74488c7a8f6c765/FHEM/38_co2mini.pm#L276). Es gibt einen dedizierten Server den man separat (zum Beispiel auf einem Pi, läuft bei mir genau so zu Hause) laufen lassen kann und das FHEM-Modul verbindet sich dann dorthin und verhält sich im weiteren so als wäre es ein direkt angeschlossenes Gerät.
--
Henryk Plötz
Grüße aus Berlin
Super, danke dir! Klasse, wieder was zum Spielen :)
Die Installation hat sofort perfekt geklappt ! (Und ich musst sofort das Fenster aufreißen und Lüften: 1265 ppm )
Evtl. könnte man beim Define gleich noch ein FileLog mit anlegen.
Vielen Dank für das Modul !!
So, hab das Modul heute in Betrieb genommen. Erstmal vielen Dank! Klappte (fast) alles wie am Schnürchen! :) Ich habe jetzt das FHEM-Modul am Laufen und auf dem Raspi den Remote-Server.
Ein paar Sachen, die mir aufgefallen sind:
- Wenn ich den Raspi neu starte, dann verliert ja das Modul die Verbindung. Es stellt dann aber die Verbindung nicht automatisch wieder her. Ich denke, dass bei meinem Raspi-Reboot der co2mini_server hart abgeschossen wird. Das Modul braucht auch recht lange, um auf "disconnect" zu wechseln (wohl Timeout). Der Server scheint die TCP-Verbindung nicht mehr sauber zu beenden beim Runterfahren (wird evtl. einfach gekillt). Wenn ich den co2mini_server sauber per SIGTERM beende, dann wechselt das Modul sofort auf "disconnect". Aber auch hier wird dann die Verbindung nicht automatisch wieder aufgebaut.
- Das FHEM-Modul setzt von sich aus das disable-Attribut (und löscht es wohl auch wieder). Das führt dazu, dass sich dadurch immer wieder die FHEM-Config ändert und FHEM das rote Fragezeichen anzeigt zum Speichern der Config
- Ich hab auf Raspi-Seite das Problem, dass die udev-Regel beim Booten (noch?) nicht greift. Also wenn der Raspi mit dem co2mini dran bootet, dann werden die Rechte nicht vergeben und auch der Symlink /dev/co2mini0 nicht angelegt. Wenn ich den co2mini dann abziehe vom USB und wieder dran stecke, dann klappt alles. Das ist aber vermutlich eher ein Problem meiner Konstellation und hat wohl nix mit dem Modul zu tun. Hat evtl. trotzdem jemand eine Idee, was man da machen kann? Ich vermute, dass udev scheinbar noch nicht arbeitet während das Gerät schon eingebunden wird während der Bootphase. Ich nutze ein Raspi2 mit TinyCore Linux.
Vielen Dank für das Modul! Genau, was ich eigentlich schon immer gesucht habe. Modul läuft out-of-the-box! Endlich ein CO2-Sensor ohne Umwege, echt Klasse!
Jetzt kann ich endlich die Netatmos für die Fenstersteuerung rausschmeißen.
Vermute leider, dass das es mit einem günstigen Kombisensor (CO2, Temp, Hum) nichts wird. :(
Link (http://forum.fhem.de/index.php/topic,13166.msg393246.html#msg393246)
Liegt vermutlich an der Größe des Displays. Anders lässt sich mM der Mehrpreis nicht erklären.
Die beiden Taster an der Rückseite, die in der Anleitung beschrieben sind, existieren bei meinem Gerät übrigens auch, wenn man die Rückwand öffnet. Probiert habe ich sie noch nicht. Darüber lässt sich ggf. eine Höhenanpassung und die Kalibriermethode anpassen.
co2meter.com (http://www.co2meter.com/collections/fixed-wall-mount/products/co2mini-co2-indoor-air-quality-monitor)
Mir ist noch aufgefallen, dass ich recht häufig Fehlermeldungen im Log bekomme. Das Geräte scheint aber trotzdem sinnvolle Werte zu liefern. Das sieht ständig so aus:
2016.01.19 06:42:42 3: co2mini wrong data format received or checksum error
2016.01.19 06:47:34 3: co2mini wrong data format received or checksum error
2016.01.19 06:47:34 3: co2mini wrong data format received or checksum error
2016.01.19 06:48:35 3: co2mini wrong data format received or checksum error
2016.01.19 06:48:35 3: co2mini wrong data format received or checksum error
2016.01.19 06:49:45 3: co2mini wrong data format received or checksum error
2016.01.19 06:49:45 3: co2mini wrong data format received or checksum error
2016.01.19 06:51:05 3: co2mini wrong data format received or checksum error
2016.01.19 06:51:05 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:00 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:00 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:05 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:05 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:10 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:10 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:15 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:15 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:20 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:20 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:25 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:25 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:56 3: co2mini wrong data format received or checksum error
2016.01.19 06:53:56 3: co2mini wrong data format received or checksum error
2016.01.19 06:54:50 3: co2mini wrong data format received or checksum error
2016.01.19 06:54:50 3: co2mini wrong data format received or checksum error
2016.01.19 06:54:55 3: co2mini wrong data format received or checksum error
2016.01.19 06:54:55 3: co2mini wrong data format received or checksum error
2016.01.19 06:55:30 3: co2mini wrong data format received or checksum error
2016.01.19 06:55:30 3: co2mini wrong data format received or checksum error
2016.01.19 06:55:35 3: co2mini wrong data format received or checksum error
2016.01.19 06:55:35 3: co2mini wrong data format received or checksum error
2016.01.19 06:56:05 3: getLedColorByWatchMode. Event: wz_lightLedStripe - 5
2016.01.19 06:58:48 3: getLedColorByWatchMode. Event: wz_lightLedStripe - 5
2016.01.19 07:01:17 3: getLedColorByWatchMode. Event: wz_lightLedStripe - 5
2016.01.19 07:02:59 3: co2mini wrong data format received or checksum error
2016.01.19 07:02:59 3: co2mini wrong data format received or checksum error
2016.01.19 07:03:09 3: co2mini wrong data format received or checksum error
2016.01.19 07:03:09 3: co2mini wrong data format received or checksum error
2016.01.19 07:03:31 3: getLedColorByWatchMode. Event: wz_lightLedStripe - 5
2016.01.19 07:06:35 3: getLedColorByWatchMode. Event: wz_lightLedStripe - 5
2016.01.19 07:06:40 3: co2mini wrong data format received or checksum error
2016.01.19 07:06:40 3: co2mini wrong data format received or checksum error
2016.01.19 07:09:30 3: co2mini wrong data format received or checksum error
2016.01.19 07:09:30 3: co2mini wrong data format received or checksum error
2016.01.19 07:09:40 3: co2mini wrong data format received or checksum error
2016.01.19 07:09:40 3: co2mini wrong data format received or checksum error
2016.01.19 07:10:31 3: co2mini wrong data format received or checksum error
2016.01.19 07:10:31 3: co2mini wrong data format received or checksum error
2016.01.19 07:10:51 3: co2mini wrong data format received or checksum error
2016.01.19 07:10:51 3: co2mini wrong data format received or checksum error
2016.01.19 07:12:15 3: co2mini wrong data format received or checksum error
2016.01.19 07:12:15 3: co2mini wrong data format received or checksum error
2016.01.19 07:12:20 3: co2mini wrong data format received or checksum error
2016.01.19 07:12:20 3: co2mini wrong data format received or checksum error
2016.01.19 07:13:21 3: co2mini wrong data format received or checksum error
2016.01.19 07:13:21 3: co2mini wrong data format received or checksum error
2016.01.19 07:14:21 3: getLedColorByWatchMode. Event: wz_lightLedStripe - 5
2016.01.19 07:14:22 3: co2mini wrong data format received or checksum error
So ists definiert:
Internals:
CHANGED
DEF 192.168.2.23:2020
DEVICE 192.168.2.23:2020
FD 19
NAME wz_co2mini
NR 518
NTFY_ORDER 50-wz_co2mini
STATE 713 ppm
TYPE co2mini
Helper:
Dblog:
Co2:
Bendblog:
TIME 1453187984.42798
VALUE 728
Readings:
2016-01-19 08:21:14 co2 713
2016-01-19 08:21:12 temperature 16.85
Helper:
buf
mode net
Attributes:
alias CO2 Sensor
event-min-interval co2:120
event-on-update-reading co2
group Klima
room Wohnzimmer
stateFormat co2 ppm
Ich hab das Modul für mich mal etwas umgebaut, um die o.g. Punkte zu verbessern. Folgende Änderungen sind da bisher drin:
- Nutzung der standardisierten DevIo-Funktionen für den Aufbau (und automatischen Neuaufbau) von Remote-Verbindungen
- STATE wird nicht mehr überschrieben, so dass das Attribut stateFormat genutzt werden kann
- Bug beim Parsen der Nachrichten per TCP behoben
- Gerät wird nicht mehr automatisch disablet bei Verbindungsproblemen
Ich konnte jedoch nur die Variante mit Remote-Server testen, da ich das Gerät nicht physikalisch zu meiner FHEM-VM durchschleifen konnte. Kann also gut sein, dass da was nicht funktioniert wenn man den CO2mini direkt per USB verbindet. Rückmeldungen wären toll, dann fix ich das.
Zu finden ist der Quellcode hier:
https://github.com/verybadsoldier/fhem-co2mini/tree/vbs
Bzw. hier zum direkten Einbinden in FHEM:
https://raw.githubusercontent.com/verybadsoldier/fhem-co2mini/vbs/controls_co2mini.txt
Hallo zusammen,
ich habe an 2 mehr oder weniger identischen Raspberrys jeweils einen co2mini mit dem Modul hier in Betrieb. Seit kurzem funktioniert nun einer nach einem Reboot nicht mehr, der andere noch prima.
Ich konnte den Fehler daher schon soweit eingrenzen, dass es nichts mit dem Modul zu tun hat. Denn wenn ich jeweils auf der shell mit cat gucke, was das Device so liefert, kommen bei dem funktionierenden einige unleserliche Steuerzeichen, bei dem kaputten - kommt jedoch gar nichts.
Das Gerät wird aber per lsusb bzw. dmesg vom OS identisch wie bei dem funktionierenden erkannt. Udev-regeln spielen an dieser ja noch keine Rolle, sind aber korrekt gesetzt, hatte ja vorher auch geklappt. Diverse Neustarts halfen leider nicht. LCD und LED des Co2mini zeigen derweil korrekte Werte am.
Bevor ich den Hardwaretot diagnostiziere und mir einen neuen bestelle, wollte ich einmal in die Runde fragen, ob jemand ne Idee hat?
Hast Du einen aktiven Hub dazwischen? Wenn nicht wäre mein erster Verdacht die Stromversorgung vom RPi. RPi ist bekannt dafür.
Vielleicht hast Du noch andere Hardware, an der Du die CO2minis testen könntest.
Gesendet von iPhone mit Tapatalk
Falls es noch von Interesse ist, das USB-Protokoll ist bei co2meters.com beschrieben: http://www.co2meters.com/Documentation/AppNotes/AN135-CO2mini-usb-protocol.pdf
Hallo zusammen,
ich habe beide Module getestet und stoße dabei immer wieder auf Probleme, vielleicht kann mir jemand helfen:
henryk: Das Modul funktioniert an sich bleibt aber auf "disconnected" stehen obwohl aktuelle Daten eingehen und angezeigt werden.
verybadsoldier: Das Modul tut bei mir gar nichts, keine Fehler, kein Connect, nichts.
Über einen Denkanstoß würde ich mich sehr freuen!
Grüße,
Maik
Interessante Arbeit.
Was denkt ihr denn über den CO2 Monitor 5020-0105 (31.5003)?
Ein Gerät, welches alle drei Werte messen kann. Ein USB ist zumindestens auch dort verbaut und zur Stromversorgung spezifiziert. Aber auch hier keine Erwähnung vom Datenloggen. Wie hoch ist denn die Wahrscheinlichkeit diesen mit dem FHEMModul ebenfalls zum loggen zu bewegen?
Ich würde denken, das hängt davon ab, ob das gleiche USB-Protokoll verwendet wird und über dieses die Daten überhaupt zur Verfügung gestellt werden. Für den CO2mini reicht eine entsprechende google Suche, um hier fündig zu werden.
Da ich auch beim CO2mini aber immer an den USB-Port gebunden war, messe ich mittlerweile über die Sensoren von vair-monitor.com.
Wenn Du darüber mehr wissen möchtest, mach mal einen neuen Thread auf und schick mir ne PN, das ist hier zu OT.
Vom Modul des CO2mini war ich in jedem Falle begeistert, weil es mir gezeigt hat, dass sich ein regelmäßiges Lüften im Schlafzimmer wirklich lohnt. Liegt vermutlich an den niedrigen Decken.
Mal eine kleine Frage anbei. Hat schon mal jemand den CO2Mini mittels LANPort-Adapter in eine bestehende FHEM Installation eingebunden?
Das Problem ist, dass der PI nicht im gleichen Raum wie die CO2Minis steht. Evtl. habe ich auch nur etwas übersehen?
@nrgmac
Funktioniert bei mir einwandfrei. Gerät hängt an LogiLink Verlängerungskabel USB über CAT5/6. Der gesamte Aufbau ist:
CO2-Sensor => LogiLink-Adapter (1) => CAT6 (20m-30m) => LogiLink-Adapter (2) => USB-Hub (Aktiv) => Raspi
Ich habe zurzeit zwei der CO-Sensoren im Dauerbetrieb und noch keine Probleme gehabt.
An dieser Stelle noch einmal herzlichen Dank an den Entwickler!
Servus zusammen,
ich habe ein kleines Problem mit dem modul co2mini:
Das USB modul ist an einem Raspberry Pi Zero W und liefert die Daten uebers lokale Netz.
Funktioniert die meiste Zeit recht gut, aber ab und zu haengt sich das Modul auf, oder Raspberry connected sich neu ins WLAN.
Dann werden keine Werte mehr geliefert oder das Modul setzt sich auf disabled.
Wie kann ich das Modul dazu bringen, einen neuen Reconnect zu starten?
Ich wuerde dann einfach einen Watchdog benutzen, wenn fuer 5min keine Werte mehr aktualisiert worden sind.
danke fuer jeden Hinweis
tschuess,
Thomas
So, anscheinend hat es das Modul nicht vorgesehen einen Reconnect ausufuehren...
Daher hab ich das Modul umgeschrieben, siehe Anhang.
Die Benutzung ist einfach:
man definiert wie vorher das Modul:
define tempco2 co2mini raspi:2020
(In meinem Fall ist das USb modul an einem remote-Raspberry)
Jetzt geht der Reconnect einfach durch:
set tempco2 reconnect
oder man definiert sich einen Watchdog:
define wd.tempco2 watchdog tempco2 00:05:00 SAME set tempco2 reconnect ; trigger wd.tempco2 .
Falls das Modul fuer 5 Minuten kein Update erhaelt, dann wird ein reconnect ausgefuehrt (und der Watchdog neugestartet).
Das passiert bei mir manchmal, falls der Raspi probleme mit dem WLAN hat...
Ach ja: Und ich hab das automatische disable bei Problemen entfernt >> Jetzt passiert nur ein Disconnect bei Fehlern.
tschuess,
Thomas
Danke @sct14675 und die anderen Vorarbeiter!
Ich habe das Modul lokal am raspi3 mit deiner Version problemlos in Betrieb nehmen können.
Es ist ein 31.5006.02 Modul. Mit der Originalversion kam im FHEM nur disconnected, wie bei @DUSTiggr
Die Version von vbs lief bei mir auch nicht.
Gruß
Vielen Dank für dieses tolle Modul! :D
Bei mir läuft jetzt die Version von @vbs in Verbindung mit einem dedizierten raspi3 als co2mini server. Im Übrigen handelt es sich bei
https://github.com/verybadsoldier/fhem-co2mini/tree/vbs
https://github.com/henryk/fhem-co2mini/tree/verybadsoldier-vbs
bzw.
https://github.com/henryk/fhem-co2mini/tree/master
https://github.com/verybadsoldier/fhem-co2mini/tree/master
scheinbar jeweils um identische branches von @henryk und @vbs. Bei mir funktionieren allerdings auch nur die ersten beiden verlässlich ohne dauerhafte disconnects. Die Version von @sct14675 funktioniert zwar prinzipiell, führt bei mir leider zu verwirrenden Fehlermedlungen im log.
Nur, falls jemand daran Interesse haben sollte -- ich habe mir noch ein kleines startup/shutdown Skript für den raspi3 server geschrieben (siehe Anhang). Um das zu nutzen, muss man nur die Variablen file und port darin entsprechend anpassen, dann auf dem raspi3 z.B. mit
sudo cp co2mini /etc/init.d/
sudo update-rc.d co2mini defaults
sudo service co2mini start
installieren und ggf. mit
sudo service co2mini start|restart|stop|status
nutzen.
Viele Grüße
Hallo!
Bei mir läuft jetzt auch der CO2mini-Sensor an FHEM - gekauft bei Amazon für 69 EUR unter dem Namen "TFA Dostmann CO2-Messgerät AirCO2ntrol, mini, weiß"
Habe hier
https://github.com/jliebich/RaspberryPiNotes/blob/master/co2mini.md (https://github.com/jliebich/RaspberryPiNotes/blob/master/co2mini.md)
nochmal die Installationsschritte dokumentiert, damit man sich die Infos nicht im Forum zusammensuchen muss.
Vielleicht hilft es ja jemandem...
Danke @FHEMJoe, Ich habs grade erfolgreich nach deiner Anleitung neu installiert!
Hallo zusammen,
auch ich habe mein Glück versucht und mir bei Amazon den besagten CO2 Sensor gekauft. Dann habe ich meinen unbenutzten Pi aus dem Schrank geholt und ihm ein frisches System verpasst um ihm anschließend der Anleitung von @FHEMJoe folgend einen co2mini Server zu verpassen.
So weit so gut - der Server startet nur leider nicht richtig?!
Wenn ich den Status abfrage bekomme ich folgende Meldung:
pi@raspberrypi:~ $ sudo service co2mini status
â— co2mini.service
Loaded: loaded (/etc/init.d/co2mini; generated; vendor preset: enabled)
Active: active (exited) since Thu 2019-02-14 10:19:11 CET; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 214 ExecStart=/etc/init.d/co2mini start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/co2mini.service
Feb 14 10:19:09 raspberrypi systemd[1]: Starting co2mini.service...
Feb 14 10:19:10 raspberrypi co2mini[214]: /etc/init.d/co2mini: 25: /etc/init.d/co2mini: /home/pi/co2mini/fhem-co2mini/co2mini_server.pl: Permission denied
Feb 14 10:19:11 raspberrypi co2mini[214]: Started new instance of co2mini server with pid
Feb 14 10:19:11 raspberrypi systemd[1]: Started co2mini.service.
pi@raspberrypi:~ $
Mir ist natürlich direkt die Meldung "Permission denied" ins Auge gefallen, ich habe jedoch gemäß Anleitung die Rechte gesetzt.
Ich weiß jetzt nicht mehr weiter und hoffe, daß ihr mir helfen könnt.
Was zeigt denn folgendes an?
ls -al /home/pi/co2mini/fhem-co2mini/co2mini_server.pl
Hallo AlexTheB,
Ich habe meine zweiten Sensor erst letzte Woche auf einen neuen Raspberry Pi umgesiedelt und hatte dabei das gleiche Problem.
In der Anleitung fehlt die Info, dass du auch die execute Rechte auf co2mini_server.pl vergeben musst.
ZitatIn der Anleitung fehlt die Info, dass du auch die execute Rechte auf co2mini_server.pl vergeben musst
Genau das war das Problem! Danke für den Hinweis.
Moin Moin, fhem und der pi mit dem co2mini läuft eigentlich seit Monaten stabil. Sehr gut.
Nun hab ich mal wieder ein bisl gebastelt und festgestellt, daß beim reboot, wenn der co2 sensor über USB angeschlossen ist, dass der pi nicht bootet. Ist euch das auch schon mal aufgefallen?
kennt jemand den Grund?
zieh ich das Teil ab und starte neu, dann geht es und dann schließe ich den sensor per USB an.
Komisch oder?
Vg Rene
Bootet tatsächlich der PI nicht oder läuft nur fhem nicht?
Wie stellst du fest, dass der PI nicht bootet?
Hast du in fhem initialUsbCheck noch aktiv?
Das könnte zumindest dazu führen, dass fhem nicht (so gut) läuft...
Habe ich doch richtig verstanden, dass fhem auf dem PI läuft wo das Ding dran steckt?!
EDIT: ich hab den CO2-Dingens auch an einem PI stecken (anders eingebunden, also selbst was geschrieben) nur da läuft kein fhem (ist per ssh an fhem angebunden). Auf dem PI läuft DeConz (eine Art HUE-Bridge) und ich hab kein Problem beim Booten...
Gruß, Joachim
Fhem und der co2mini laufen auf ein und denselben pi.
wie stelle ich das fest, ganz einfach reboot und schauen was der pi beim starten macht. Der hängt sich meist schon auf, wenn er die 3 Himbeeren anzeigen sollte, der ganze Boot Prozess geht gar nicht los.
Hast du einen Monitor dran hängen?
Hast du den PI mit Grafik, also Desktop installiert!?
Wenn: warum?
Kommt nach den "Himbeeren" gar nix mehr?
Wie geschrieben: ich hab keine Probleme...
PI 3B (ohne plus) mit Stretch und deConz...
Gruß, Joachim
Meiner ist der pi2, ich glaube b und er liegt hinter dem TV, er ist also per hdmi abgeschlossen. Der pi ist ein rasberian Image, also wenn der TV dran ist hast du auch den Desktop. Nutze ich aber nie,außer für xbmc / codi.
geh sonst nur mit ssh drauf. Manchmal startet er etwas weiter und ein paar Zeilen laufen durch, meist bleibt er aber irgendwann hängen. Außer wenn ich den sensor anziehe... Seltsam
Ja, seltsam...
Aber dann läuft ja einiges auf dem armen Käfer: xbmc/KODI, Desktop, fhem, ... ;)
Dann weiß ich auch nicht...
Außer halt die "üblichen" system-logs etc. durchforsten...
Gruß, Joachim
Moinsen,
keine Ahnung was bei mir so los war, zum Glück hatte ich das erste Mal vor ein paar Wochen ein Backup gemacht.
Nachdem ich das ganze Image wieder eingespielt hatte, lief mein PacketManager wieder und der PI startet auch wieder normal mit angeschlossenen Geräten.
Allerdings musste ich in der Rebootconfig /etc/init.d/co2mini das Device von /dev/co2mini0 auf /dev/co2mini1 umstellen, damit wieder Daten empfangen werden konnten.
VG
René
Guten Abend,
trotz der Gefahr, dass hier schon ein paar Tage Sendepause ist, versuche ich mal mein Glück. ;)
Habe mich soweit an die Anleitung aus dem ersten Post gehalten und bekomme beim Versuch den CO2mini anzulegen folgenden Fehler:
Mein Versuch define co2 co2mini
Antwort von Fhem Error opening /dev/co2mini0
Was habe ich übersehen?
Danke & Gruß vorweg!
Christian
Steht etwas mehr im Log?
Könnte sein als dass fhem nicht auf die Schnittstelle "darf"...
Das hast du gelesen und beachtet:
Zitat
wobei man statt plugdev ggbf. eine andere Gruppe einträgt in der fhem läuft, oder statt 0660 als mode 0666 (für alle zugreifbar) angibt.
Glaube nicht, dass der fhem User (standardmässig) in plugdev ist...
Also mal wie geschrieben andere Gruppe versuchen (dialout!?) oder fhem zusätzlich zur Gruppe plugdev...
Wäre mal meine Idee...
Alternative: fhem für dieses Kommando in sudoers OHNE Passwort und dann eben sudo vor das Kommando (wenn man das beeinflussen kann / kenne/nutze das Modul nicht)...
Gruß, Joachim
Moin Christian,
ich hatte das gleiche Problem. Habe es so direkt auch nicht zum laufen bekommen. Jetzt hängt der Sensor an einen Raspi und ich greife mit Fhem und dem Modul über die IP zu. Das klappt stabil.
Gruss
Enno
Erstmal bedanke ich mich für die schnellen Rückmeldungen!
Bzgl. mehr Log-Einträge habe ich kurzzeitig Verbose auf 5 gestellt und nochmal versucht das Device anzulegen. Ergebnis: log.jpg
Der Sensor hängt direkt an meinem RasPi USB Port auf dem auch meine FHEM Instanz läuft.
Ich hatte denselben Sensor vor einem Jahr schon mal an einem anderen RasPi mit FHEM2FHEM laufen, aber leider kann ich mich nicht mehr erinnern ob ich dort schon Probleme beim Einrichten hatte... ::)
Berechtigungen kann ich erst später zuhause prüfen wenn ich per Putty auf den RasPi komme.
@Enno
Wie und wo hast du das in der Konfiguration realisiert wenn ich fragen darf?
Habe folgendes noch nicht probiert falls es Unterstützt wird: define co2 co2mini 127.0.0.1:xxxx
Oder hast du den Verweis auf deine IP Adresse und Port in dem Script co2mini_server.pl hinterlegt?
Danke & Gruß
Christian
Moin Christian,
ich schaue das heute Abend mal nach und melde mich dann mit den Einstellungen hier wieder.... Meine aber dein Code sieht schon gut aus. Ist aber schon eine weile her als ich das hier eingerichtet habe.
Gruss
Enno
Edit: Installiert nach Post 34: https://github.com/jliebich/RaspberryPiNotes/blob/master/co2mini.md
List vom Device
Internals:
CHANGED
DEF 192.168.1.25:23231
DeviceName 192.168.1.25:23231
FD 15
FUUID 5d55b786-f33f-9270-84d4-66fb19a40c867e36
LAST_RECV 1579189713.81139
NAME co2
NR 861
PARTIAL
STATE 474
TYPE co2mini
Helper:
DBLOG:
co2:
MYSQL:
TIME 1579189367.47566
VALUE 475
READINGS:
2020-01-16 16:48:33 co2 474
2020-01-14 20:35:14 state opened
2020-01-16 16:48:31 temperature 22.725
helper:
buf
mode net
Attributes:
event-on-change-reading co2:5
stateFormat co2
Danke Enno!
Bin deinen geposteten Link nochmal in Ruhe durchgegangen und dieses Mal konnte ich das Device wie gewünscht anlegen.
War gestern wohl zu später Stunde nicht mehr so aufmerksam... ;D
Nun läuft es und ich kann mich dann endlich an die Verheiratung mit meiner Lüftungsanlage machen.
Gruß Christian
Servus,
jemand ne Idee, ich habe jetzt auf den Pi4 und neuste BS upgedatet.
Das co2mini dran und eingerichtet mit Reboot und Perl-Script usw... FHEM kann drauf zugreifen.
Wenn ich FHEM restartet, steht auf einmal im
pi@raspberrypi:~ $ sudo service co2mini status
● co2mini.service
Loaded: loaded (/etc/init.d/co2mini; generated)
Active: active (exited) since Fri 2020-05-08 16:24:14 CEST; 14min ago
Docs: man:systemd-sysv-generator(8)
Process: 21020 ExecStart=/etc/init.d/co2mini start (code=exited, status=0/SUCCESS)
Mai 08 16:24:14 raspberrypi systemd[1]: Starting co2mini.service...
Mai 08 16:24:14 raspberrypi co2mini[21020]: Started new instance of co2mini server with pid 21026
Mai 08 16:24:14 raspberrypi systemd[1]: Started co2mini.service.
Mai 08 16:35:22 raspberrypi co2mini[21020]: send: Cannot determine peer address at /home/pi/co2mini/fhem-co2mini/co2mini_server.pl line 89.
pi@raspberrypi:~ $ vi /home/pi/co2mini/fhem-co2mini/co2mini_server.pl
send: Cannot determine peer address at /home/pi/co2mini/fhem-co2mini/co2mini_server.pl line 89. wenn das da da ist, kann FHEM nicht wieder connecten... auch mit der modifizierten Version mit reconnect... nichts zu machen... erst wenn ich den co2mini Service einmal restartet gehts wieder.
VG
René
PS: Es scheint ein Fehler im PERL Script zu sein... ich habe das PerlScript mal durch einen Validator laufen lassen, das wird an der Stelle "foreach $client" 4 mal angemeckert... man soll da wohl ein "foreach my $client" setzen. Das habe ich gemacht, aber trotzdem wird bei restarten von FHEM immer wieder die Zeile 89 angemeckert... kann da mal einer schauen?!
Kann ich das Modul auch mit einem Raspberry anstatt zwei Raspberries benutzen?
Ich bekomme leider immer Error establishing connection to /dev/co2mini0
Hat sich ggf die Hardware geändert?
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...
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é
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 (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é
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?
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?
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. . . .
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 (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
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
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
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é
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
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
Hi,
stell' mal serverControl auf "fhem" und lösche serverIp und serverPort.
Gruß,
Thorsten
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
.... und schon funktioniert´s
Danke