NEWS
[Adapter] - iobroker.i2c
-
@enricoh831 sagte in [Adapter] - iobroker.i2c:
ich bin da gerade an einem neuen Projekt dran und möchte einen Arduino Mega direkt per I2C mit IO Broker ansteuern um Gpio zu schalten.
Hallo Enrico,
wenn du per I2C zwischen RasPi (Master) und Arduino (Slave) kommunizieren willst, musst du wohl dein eigenes Protokoll machen. Falls du ganz einfach ein paar IOs schalten willst, dann benutze doch das MCP23017 Protokoll im Arduino, dann kannst du im ioBroker einfach MCP23017 einstellen.
Proprietäre Protokolle, wie du eben möglicherweise machen willst, kann ich leider nicht unterstützen, da jeder ja eben sein eigenes Protokoll hat. Ich unterstütze nur "fixfertige" Silikon-Lösungen (I2C-Chips, die man so einkaufen kann).
Falls ich etwas falsch verstanden habe, schick mir doch eine PM.
/UncleSam
-
@enricoh831 sagte in [Adapter] - iobroker.i2c:
Im adapter hat er auch gleich an adresse 0x20 was gefunden. Nach dem Konfigurieren
und speichern geht der Adapter nicht mehr auf grün (garnicht mehr).Hast du das Problem lösen können?
Meine Vermutungen: Bus Nummer 2 ist falsch (war das immer schon Nummer 2?) oder der Adapter respektive ioBroker läuft nicht mit den richtigen Berechtigungen (siehe: https://github.com/UncleSamSwiss/ioBroker.i2c#access-right-issue)
-
@DrHouse03 sagte in [Adapter] - iobroker.i2c:
ich bin gerade dabei meine Pool-Steuerung zu planen.
Jetzt bin ich auf das Tentacle T3 Board für den Raspberry Pi gestossen.
Damit könnte ich die PH- und Redox-Werte über I2c auslesen.Das müsste noch implementiert werden. Gewisse Informationen finde ich hier: https://www.whiteboxes.ch/docs/tentacle/t3/#/code
Allerdings ist Implementieren ohne Hardware etwas schwierig und das Board ist doch etwas über meinem Budget nur um das zu implementieren.
Wenn du programmieren kannst, würde ich wohl eher das erwähntei2c.py
Skript erweitern und zum Beispiel per MQTT die Werte an den MQTT Adapter in ioBroker weiter schicken.
Wenn du nicht programmieren kannst, müssten wir bilateral (per PM) schauen, wie wwir das hinkriegen - es würde allerdings bedingen, dass du die Hardware bereits besitzt./UncleSam
-
@Christin-Michelle-Fremgen sagte in [Adapter] - iobroker.i2c:
Ich habe eine RaspiZero und daran einen Servo-Treiber (https://smile.amazon.de/AZDelivery-PCA9685-Servotreiber-Arduino-Raspberry/dp/B072N8G7Y9/ref=pd_sbs_328_1/257-1480378-7596562?_encoding=UTF8&pd_rd_i=B072N8G7Y9&pd_rd_r=fa0715ab-30dc-4c9f-a613-ebb99265e6a0&pd_rd_w=PPyA1&pd_rd_wg=Vbn4i&pf_rd_p=c8718c55-fb13-473f-a41c-592a17ad3468&pf_rd_r=50ZCEETZNTBTFYH6WE43&psc=1&refRID=50ZCEETZNTBTFYH6WE43). Damit möchte ich die Luftklappen meiner Heizung die eben mit Heißluft anstelle von Heißwasser funktioniert steuern. Es wäre super wenn es möglich wäre die Unterstützung für dieses Modul zu implementieren.
GitHub Issue ist eröffnet: https://github.com/UncleSamSwiss/ioBroker.i2c/issues/41
Lieferung in 30-50 Tagen - sofern das Corona-Virus uns keinen Strich durch die Rechnung macht. -
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...