UniPi - The Universal Raspberry Pi add-on board

Begonnen von betateilchen, 10 November 2014, 19:01:15

Vorheriges Thema - Nächstes Thema

spaci76

Hallo Ralf,

hast du die 1 Wire Thermometer über http angesteuert, wenn ja wie? Ich bekomme da einfach den value nicht angezeigt.

cu spaci76

ml76

Hallo zusammen,

ich habe hier ein UniPi V1.1, welches ich mit meinem Pi3 (aktuelles Jessie) verbunden ist.
Nach der Anleitung von Seite 1 habe ich die Definitionen vorgenommen, über das definierte "Relais" Dummy kann ich auch die 8 Relais schalten.

Einzig der One-Wire Bus macht nicht wirklich etwas.
Ich kann über das Read des OWSERVER nichts finden.

Über i2cscan von der Linux Konsole kann ich aber meine Sensoren samt Adressen finden.
Hat hierzu jemand einen Rat für mich?

Oder wäre freundlicherweise jemand bereit einem absoluten Neuling diesbezüglich per Team Viewer o.ä. unter die Arme zu greifen?

Besten Dank & Gruß,
Markus

origami

Hallo Zusammen,
ich kämpfe zur Zeit mit dem Unipi board.
i2c Bibliothek ist geladen, jedoch kommt nach dem  #i2cdetect -y 1 keine Antwort, auch keine Fehlermeldung.
update und Neustart schon gemacht.
woran kann das liegen?

Danke für Hilfe

Dirk

devien

Zitat von: origami am 16 März 2019, 16:42:50
Hallo Zusammen,
ich kämpfe zur Zeit mit dem Unipi board.
i2c Bibliothek ist geladen, jedoch kommt nach dem  #i2cdetect -y 1 keine Antwort, auch keine Fehlermeldung.
update und Neustart schon gemacht.
woran kann das liegen?

Danke für Hilfe

Dirk

na, hast das Problem schon gefunden?
Ich kann mir gut vorstellen das du die I2C Packete nicht installiert hast.

Gruß
FHEM + UniPi + Arduino = gute Lösung

RZNYKJ

Guten Morgen,
habe mich nach langem Zögern für das Unipi 1.1 Board entschieden und gestern meine ersten Versuche damit unternommen. Leider gibt es dazu, bis auf diesen Thread, nicht besonders viele Infos. Nun ja, konnte alles soweit einbinden und die Relais kann ich auch schalten. Mir ist aber leider überhaupt nicht klar, wie ich die digitalen Eingänge lesen kann... Aus der Commandref wurde ich diesbezüglich auch nicht schlauer. Könnt ihr mir einen Tipp geben?

Danke und Gruß
Achim

klausw

Hallo Achim,

die Eingänge gehen auf die GPIOs des Pi.
Dafür kannst du das Modul RPI_GPIO nutzen.
Die GPIO Nummern solltest du in der UniPi Doku finden

Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

RZNYKJ

Danke, das hat geholfen. Dachte zunächst das wäre auf über I2C ansprechbar.

Marco4321

#127
Zitat von: devien am 22 August 2019, 16:28:52
na, hast das Problem schon gefunden?
Ich kann mir gut vorstellen das du die I2C Packete nicht installiert hast.

Gruß

hab anscheinend auch das Problem.
wollte wie auf Seite 1 vorgehen, nach apt-get install i2c-tools libi2c-dev    und jetzt   i2cdetect -y 1  folgende Meldung :
Error: Could not open file `/dev/i2c-1' or `/dev/i2c/1': No such file or directory

jemand eine Idee, suche schon seit Stunden  :-[

10 min nach dem geschriebenen hab ich es dann doch noch gefunden. Musste erst in sudo raspi-config  --> interface option --> i2c  einschalten

devien

Hallo,

ich wärme diesen Thread auf daer am passendsten ist und ich vermeiden möchte das zu viele über das gleiche Thema entstehen.

Vorabinfo: Ich habe seid 10 Jahren einen Unipi1.1 für meine Hausautomatisierung im Betrieb, vor ein par Jahren habe ich den RaspberryPi2 gegen RaspberryPi3 ersetzt. Die SD Karte habe ich vor ein par Tagen erneuern müssen da die alte offenbar wieder das Zeitliche gesegnet hatte. Habe dabei gleich die neueste Raspbian Version installiert

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"

I2C läuft (I2C_MCP23008 schaltet meine Relays)
1Wire läuft (ich kann die Daten der DS18b20 Sensoren abfragen)
Fhem ist als User in den entsprechenden Gruppen hinterlegt

dialout:x:20:pi,fhem
sudo:x:27:pi,fhem
users:x:100:pi,fhem
input:x:102:pi,fhem
spi:x:995:pi,fhem
i2c:x:994:pi,fhem
gpio:x:993:pi,fhem

Nun zu meinem Problem: Ich habe einen Counter der eigentlich bei einer Umdrehung meines Volumenstromzählers der Solaranlage um 1 hochzählen sollte was dann wiederum andere Sachen macht..siehe def:
defmod i03 RPI_GPIO 27
attr i03 DbLogExclude Counter,Dblclick,Pinlevel,Toggle,d_volumen,solargesamtertrag,solarjahresertrag,solarmonatsertrag,state,volumenstrom
attr i03 active_low no
attr i03 alias Solarzähler
attr i03 ctsperm3 1000
attr i03 dichte 1042
attr i03 direction input
attr i03 event-on-change-reading 1
attr i03 event-on-update-reading Counter,volumenstrom,d_volumen,solarleistung,solartagesertrag,solargesamtertrag, state
attr i03 fp_Solar 59,203,0,i01
attr i03 icon sani_solar
attr i03 interrupt falling
attr i03 offset 860
attr i03 poll_interval 5
attr i03 restoreOnStartup yes
attr i03 room Solarsteuerung,UniPi
attr i03 stateFormat {sprintf("V: %.2fm3",solarzaehlerstand("i03","Counter",0)).sprintf(" E: %.2fkWh",ReadingsVal("i03","solartagesertrag",0)).sprintf(" P: %.2f kW",ReadingsVal("i03","solarleistung",0));;}
attr i03 userReadings volumenstrom:Counter.* differential {solarzaehlerstand('i03', 'Counter');;}, d_volumen:Counter.* difference {solarzaehlerstand('i03', 'Counter');;}, solarleistung:volumenstrom.* { get_solarleistung('i03', 'DS18B20_Vorlauf_S', 'DS18B20_Ruecklauf_S');;}, solargesamtertrag {get_solarertrag('i03','DS18B20_Vorlauf_S', 'DS18B20_Ruecklauf_S');; }, solartagesertrag { get_d_solarertrag('i03', 'D_SOLARCNTATMIDNIGHT');;}, solarmonatsertrag { get_d_solarertrag('i03', 'D_SOLARCNTAT1STDAYOFMONTH');;}, solarjahresertrag {  get_d_solarertrag('i03','D_SOLARCNTAT1STDAYOFYEAR');;}
attr i03 verbose 5
attr i03 waermekapazitaet 3.8

Leider zählt der RPI_GPIO nicht hoch, ich habe diesmal kein wiringpi installiert und das pudresistor Atribut entsprechend entfernt.
Also hab ich weiter geschaut ob sich der Status des GPIO am Raspbian selbst überhapt ändert.
/sys/devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio27/value ändert sich nicht, seit dem letzten Neustart des Systems.

also kommen die Zählimpulse die am unipi (per LED des Unipi I03 = GPIO27) ankommen nicht bis in die Datei "/sys/devices/platform/soc/3f200000.gpio/gpiochip0/gpio/gpio27/value".

Aber warum? Vor dem Kartencrash hat es noch sauber funktioniert, nun muss also etwas anders sein, aber was habe ich übersehen, bzw was hat sich evtl seit buster geändert?
Im Normalfall schaue ich in die Systemlogs, aber offensichtlich werden diese mit journalctl nicht mehr so schön erstellt und ich hab noch nicht gepeilt wie man die bei journalctl ausliest. Allerdings glaube ich fast das sich dort hierzu nichts finden wird.

Kann mir jemand weiterhelfen?

FHEM + UniPi + Arduino = gute Lösung

devien

niemand einen Schimmer an welcher ecke es liegt?
FHEM + UniPi + Arduino = gute Lösung

RappaSan

Bei bookworm scheint sich einiges an Treibern geändert zu haben.
Bei mir klappt z.B. ein Display nicht mehr.
Versuch es spaßeshalber mal mit der Vorgängerversion.

klausw

Zitat von: devien am 18 Dezember 2023, 13:59:40niemand einen Schimmer an welcher ecke es liegt?

Ich habe gerade mal ein Testsystem mit Bookworm aufgesetzt.
Das Anlegen eines GPIO als Input und mit Interrupt war erstmal unauffällig.
Der GPIO wird im Dateisystem angelegt und auch die entsprechenden Dateien haben den korrekten Inhalt:

pi@pi4:~ $ sudo ls -lh /sys/class/gpio/
insgesamt 0
--w--w---- 1 root gpio 4,0K 15. Jan 23:18 export
lrwxrwxrwx 1 root root    0 15. Jan 23:18 gpio25 -> ../../devices/platform/soc/fe200000.gpio/gpiochip0/gpio/gpio25
lrwxrwxrwx 1 root gpio    0 15. Jan 00:31 gpiochip0 -> ../../devices/platform/soc/fe200000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root gpio    0 15. Jan 00:31 gpiochip504 -> ../../devices/platform/soc/soc:firmware/soc:firmware:gpio/gpio/gpiochip504
--w--w---- 1 root gpio 4,0K 15. Jan 00:31 unexport
pi@pi4:~ $ sudo ls -lh /sys/class/gpio/gpio25/
insgesamt 0
-rw-rw---- 1 root gpio 4,0K 15. Jan 23:18 active_low
lrwxrwxrwx 1 root gpio    0 15. Jan 23:18 device -> ../../../gpiochip0
-rw-rw---- 1 root gpio 4,0K 15. Jan 23:20 direction
-rw-rw---- 1 root gpio 4,0K 15. Jan 23:21 edge
drwxrwxr-x 2 root gpio    0 15. Jan 23:18 power
lrwxrwxrwx 1 root gpio    0 15. Jan 23:18 subsystem -> ../../../../../../../class/gpio
-rw-rw-r-- 1 root gpio 4,0K 15. Jan 23:18 uevent
-rw-rw---- 1 root gpio 4,0K 15. Jan 23:18 value
pi@pi4:~ $ sudo cat /sys/class/gpio/gpio25/value
0
pi@pi4:~ $ sudo cat /sys/class/gpio/gpio25/direction
in
pi@pi4:~ $ sudo cat /sys/class/gpio/gpio25/edge
rising
Wobei das Modul nach wie vor über das Verzeichnis /sys/class/gpio geht

Elektrisch testen versuch ich morgen mal. Ich erwarte aber das es funktionieren wird.

Das Attribut restoreOnStartup ist nutzlos, da es nur für Outputs die Zustände wiedergerstellt.
Das Attribut poll_interval macht bei gleichzeitiger Nutzung von interrupt auch nicht wirklich Sinn.
Wenn du den Pinlevel live sehen willst dann setze Interrupt auf both

Was liefert den sudo cat /sys/class/gpio/gpio25/value wenn du Spannung an diesem Input anlegst? Dann müsste sich der Wert von 0 auf 1 ändern.

Im Define wirst du allerdings keine Änderung des Pinlevel sehen. Das Atribut "interrupt falling" sorgt nur für ein neues Event bei jedem Pegelwechsel in der Value Datei auf 0. Wenn das UniPi eine invertierte Logik hat, dann entspricht Low Pegel am UniPi Pin einem High Pegel am Raspberry Pin.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Auf einem Raspberry Pi 4 mit frisch installiertem Raspberry OS Bookworm funktioniert das Modul wie erwartet.
Die Zuordnung passt.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280