NEWS
[Adapter] - iobroker.i2c
-
Hallo UncleSam.
ich habe den Adapter "installiert" aber sehe nichts in den Instanzen.
Ich hab ein Multihost-System, falls das eine Rolle spielt.
Wie geht's jetzt weiter? Das sind die letzten Zeilen der Installationsausgabe:upload [10] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/words.js words.js application/javascript upload [9] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/lib/js/jsviews.min.js lib/js/jsviews.min.js application/javascript upload [8] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/lib/js/jsviews-jqueryui-widgets.min.js lib/js/jsviews-jqueryui-widgets.min.js application/javascript upload [7] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/index.html index.html text/html upload [6] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/i2c.png i2c.png image/png upload [5] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/devices/PCF8574.js devices/PCF8574.js application/javascript upload [4] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/devices/MCP23017.js devices/MCP23017.js application/javascript upload [3] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/devices/MCP23008.js devices/MCP23008.js application/javascript upload [2] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/devices/DeviceBase.js devices/DeviceBase.js application/javascript upload [1] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/devices/BME280.js devices/BME280.js application/javascript upload [0] i2c.admin /opt/iobroker/node_modules/iobroker.i2c/admin/devices/ADS1x15.js devices/ADS1x15.js application/javascript process exited with code 0
Sieht also nach meinem Empfinden gut aus. Hab ich was falsch gemacht? Ich müsste ihn ja mit I2C im Filter finden.
Gruß Carsten
-
@UncleSam Danke für die Rückmeldung. Es hat sich erledigt. Ich löse das ganze über einen Arduino der die Daten an eine Siemens Logo sendet. Die Kommunikation mit iobroker erfolgt dann über den S7 Adapter.
-
Mittlerweile scheint der Adapter zu laufen.
Ich möchte einen APDS-9960 am RPI auslesen.
Wie fange ich das an? Der Sensor wird am Bus gefunden. -
@UncleSam
Bist du hier eigentlich noch dran?
https://github.com/UncleSamSwiss/ioBroker.i2c/issues/21Falls ja, schon mal Danke!
-
Grüßgott,
1.) Habe vor 2 Tagen iobroker auf mein Raspberry Pi 4 installiert. (Minimal image von 2019.11)
2.) Alles upgraded
4.) I2C enabled (raspi-config), RPi restarted, installed:sudo apt-get update sudo apt-get install i2c-tools libi2c-dev python-smbus
- i2cdetect -l << kann die Busse schön listen:
pi@hv:~ $ sudo i2cdetect -l i2c-1 i2c bcm2835 I2C adapter I2C adapter i2c-7 i2c i2c-tiny-usb at bus 001 device 014 I2C adapter
3.) Gab kommand:
sudo usermod -G i2c iobroker
Trozdem, findet dieses Adapter nicht mal den Bus:
host.hv 2020-03-30 17:31:56.944 info instance system.adapter.i2c.0 terminated with code 0 (NO_ERROR)
host.hv 2020-03-30 17:31:56.943 error Caught by controller[0]: at objects.getObjectView (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6061:26)
host.hv 2020-03-30 17:31:56.943 error Caught by controller[0]: at Adapter.getForeignStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6018:26)
host.hv 2020-03-30 17:31:56.943 error Caught by controller[0]: at Adapter._processStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5958:22)
host.hv 2020-03-30 17:31:56.943 error Caught by controller[0]: at Adapter._processStatesSecondary (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5892:25)
host.hv 2020-03-30 17:31:56.943 error Caught by controller[0]: at StateRedis.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:594:20)
host.hv 2020-03-30 17:31:56.943 error Caught by controller[0]: at states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5922:17)
host.hv 2020-03-30 17:31:56.942 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.i2c/i2c.js:129:14
host.hv 2020-03-30 17:31:56.942 error Caught by controller[0]: at I2CAdapter.main (/opt/iobroker/node_modules/iobroker.i2c/i2c.js:43:20)
host.hv 2020-03-30 17:31:56.942 error Caught by controller[0]: at Object.openSync (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:47:3)
host.hv 2020-03-30 17:31:56.942 error Caught by controller[0]: at checkBusNumber (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:55:11)
host.hv 2020-03-30 17:31:56.941 error Caught by controller[0]: Error: Invalid I2C bus number 7
i2c.0 2020-03-30 17:31:56.430 info (7112) Terminated (NO_ERROR): Without reason
i2c.0 2020-03-30 17:31:56.429 info (7112) terminating
i2c.0 2020-03-30 17:31:56.424 error at objects.getObjectView (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6061:26)
i2c.0 2020-03-30 17:31:56.424 error at Adapter.getForeignStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:6018:26)
i2c.0 2020-03-30 17:31:56.424 error at Adapter._processStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5958:22)
i2c.0 2020-03-30 17:31:56.424 error at Adapter._processStatesSecondary (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5892:25)
i2c.0 2020-03-30 17:31:56.424 error at StateRedis.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:594:20)
i2c.0 2020-03-30 17:31:56.424 error at states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5922:17)
i2c.0 2020-03-30 17:31:56.424 error at /opt/iobroker/node_modules/iobroker.i2c/i2c.js:129:14
i2c.0 2020-03-30 17:31:56.424 error at I2CAdapter.main (/opt/iobroker/node_modules/iobroker.i2c/i2c.js:43:20)
i2c.0 2020-03-30 17:31:56.424 error at Object.openSync (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:47:3)
i2c.0 2020-03-30 17:31:56.424 error at checkBusNumber (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:55:11)
i2c.0 2020-03-30 17:31:56.424 error (7112) Error: Invalid I2C bus number 7
i2c.0 2020-03-30 17:31:56.423 error (7112) uncaught exception: Invalid I2C bus number 7
i2c.0 2020-03-30 17:31:56.313 info (7112) starting. Version 0.0.6 in /opt/iobroker/node_modules/iobroker.i2c, node: v10.19.0 -
Hallo zusammen,
Ich habe gelesen, dass es eine Anfrage für den INA219 gibt. Dies würde mich auch sehr interessieren. Ist der INA 219 schon implementiert?
Viele Grüße
-
Keine eine Idee?
-
@PizzaProgram Ich habe das gleiche probiert, auf der RaspberryPi4 findet er den ADS1115:
Allerdings findet er den über I2C verbunden ADS1115 nicht in IObroker:
Ich kriege den über I2C am Pi4 (habs auch an einem Zero versucht) verbundenen ADS1115 somit leider auch nicht zum laufen, machen wir was falsch?
-
@PizzaProgram @HB Ich hatte ein ähnliches Probleme wenn man den Iobroker mit einem fertigen Image aufgesetzt hat. Gelöst hab ich das mit folgenden Befehlen:
adduser iobroker i2c
adduser www-data i2cVielleicht mal versuchen ob das hilft.
sg
Strago -
@strago Hallo Strago,
Danke zuerst mal;
leider hat sich allerdings bei mir nichts geändert..Ich habe ein Reboot gemacht und auf dem Pi4 als auch Zero aber die Fehler Meldung, dass I2C Bus umber 1 nicht stimmt bleibt.
-
@HB Ich habe folgende Update gemacht;
sudo -H -u iobroker npm install https://github.com/crycode-de/ioBroker.i2c/tarball/master --production --save --prefix "/opt/iobroker"
Gefunden habe ich diese hier: https://crycode.de/homepi-iobroker-i2c-pcf8574
Jetzt funktioniert der I2C Adapter und findet den ADS1115 und ADS1015
-
@HB Diesen Beitrag habe ich auch schon gesehen, habe den dann aber nicht verwendet da ich noch keine Interrupts verwende und vom PCF8574 weg bin.
Danke aber für den Hinweis. (Wichtig für eventuelle zukünftige Installationen)
Soweit ich das aber verstanden habe, ist das nicht mehr der offizielle I2c-Adapter von @UncleSam. Vielleicht könnte man diesen wieder zusammenführen und in einer neuen Version veröffentlichen?
sg
Strago -
Ich fürchte das Projekt ist eingeschlafen.
Schade, hatte gehofft auch mit dem I2C Bus kommunizieren zu können aber ich glaube die Adapterprogrammierung ist echt ne Nummer zu hoch für mal eben zwischendurchSchade und danke an alle, die das voran treiben.
-
Hallo zusammen,
da ich selbst den i2c-Adapter nutze und mir aber noch ein paar Funktionen fehlten, habe ich einen Fork des Adapters erstellt und dort die entsprechenden Änderungen/Ergänzungen vorgenommen.
@HB und @strago erwähnten meine erste Version ja bereits. Einen Pull Request auf GitHub gibt es auch, wobei aber @UncleSam leider momentan recht inaktiv zu sein scheint.Wer mag, kann gerne meine Version testen. Die Installation erfolgt dabei über die GitHub URL https://github.com/crycode-de/ioBroker.i2c
Änderungen im Vergleich zur letzten Version von @UncleSam:
- Interrupts für PCF8574, MCP23008 und MCP23017 hinzugefügt.
- Inputs beim PCF8574 werden auf High gesetzt, damit diese richtig funktionieren.
- Allgemeines Gerät (Gerneric) hinzugefügt.
- Damit ist es möglich grundlegend mit jedem I2C-Slave zu kommunizieren und dessen Register in ioBroker einzubinden.
- Über die Einstellungen können Register mit dem entsprechenden Datentyp hinzugefügt werden.
read
undwrite
Befehle für die Nutzung in Scripten übersendTo(...)
hinzugefügt.- Ich habe damit beispielsweise das Auslesen eines INA226 ICs über ein Script realisiert.
Viele Grüße
Peter -
Hallo,
@crycode danke für deine Antwort. Ich werde deine Version des Adapters gleich am Wochenende testen.
(Es sei denn es kommt was dazwischen )Eine Frage hätte ich vorab: Funktioniert deine Version schon unter nodejs 12? Ich hatte mit der Version von @UncleSam Probleme mit dem Adapter und nodejs 12. Bin daher mit meinem Slave derzeit noch auf nodejs 10 geblieben.
Danke schonmal für die Anpassungen!
sg
Strago -
@strago Mit Node.js 12 habe ich den Adapter bislang noch nicht getestet. Was für Probleme hattest du da genau? Dann schau ich mir das mal an...
-
@crycode Hi danke für die schnelle Antwort.
Konnte es nicht mehr erwarten, war zu "aufgeregt" und hab den Adapter schon auf deine neueste Version hochgezogen.
Funktioniert alles wunderbar mit Node.js 12.Ich beobachte jetzt mal meine Jalousie Ansteuerung ob sich was zeigt!
Danke für die Großartige Arbeit!sg
Strago -
-
@Telefisch Das kommt immer auf das Device an. Ich habe mir eben mal kurz das Datenblatt zum APDS-9960 angeschaut und der gehört wohl eher zu den komplexeren ICs mit einer ganze Reihe an Registern. Um den IC als Device einzubauen fehlt mir aktuell leider die Zeit (und die Hardware).
Du hast (mit meiner Version des I2C-Adapters) aber zumindest die Möglichkeit den IC als "Generic Device" einzubinden und kannst damit dann die einzelnen Register lesen und schreiben.
Alternativ kannst du die gesamte Kommunikation mit dem IC auch über ein Skript mittelssendTo('ic2.0', ...)
realisieren, sofern du dich mit den Skripten etwas auskennst. Ein Beispielskript zum Auslesen eines INA226 ICs findest du hier. -
Hallo zusammen
Infolge der akuten COVID-19 Situation musste ich mein Vorhaben aufgeben, ab März wieder an meinen Adaptern arbeiten zu können.
Nach vier sehr anstrengenden Monaten und einem Monat Urlaub bin ich nun wieder bereit, die ioBroker Community zu unterstützen und werde versuchen im August neue Versionen des ioBroker.i2c Adapters herauszubringen.
Als erstes werde ich die dringendsten Fehler beheben und mich danach um die Aktualisierung des gesamten Software Stacks kümmern (neuste Adapter-Vorgaben, Node 12/14, Typescript, Plugins, etc.). Sobald dies geschafft ist, kommen neue Features dran.
Ich danke euch allen für das zahlreiche Feedback und bitte euch noch um etwas Geduld, bis ich alle Pendenzen abgearbeitet habe.
/UncleSam