Modul zur Nutzung der Raspberry Pi GPIO

Hallo Joachim,

ich habe seit langem mal wieder einen BME280 in Betrieb genommen. Dabei sind dann die nachfolgenden Fehlermeldungen entstanden. Werte werden aber normal geliefert und in das Archiv geschrieben. Andere Sensoren (BME680, DS3231) am selben I2C-Bus laufen ohne Fehlermeldungen. IPS ist 5.2, dein Modul das aktuelle und PIGPIO ist v71.

Kannst du mir eventuell einen Tipp geben.

Gruss
Bernd

…muss ich mir anschauen, melde mich…

Die Fehlermeldung selbst sagt mir jetzt so gar nichts, mal schauen was das verursachen könnte…

Joachim

Hallo Bernd,

in der Zeile 377 steht folgendes:

// Taupunkttemperatur
SetValueFloat($this->GetIDForIdent("DewPointTemperature"), round($td, 2));

Die Fehlermeldung bedeutet, dass NaN (Not a Number) und INF sind komplexe Zahlen nicht unterstützt werden.

Wie kann es dort zu so einem Wert kommen?

Joachim

Hallo Joachim,

NaN/INF kann laut Definition ja auch Division durch 0 bedeuten. Hier vermute ich auch das Problem. Wenn du die unten dargestellten Werte für den BME280 und BME 680 anschaust, siehst du, dass beim BME280 eine Luftfeuchtigkeit von 0% geliefert wird und der Taupunkt (auch 0) aber nie berechnet wurde. Beim BME680 ist alles normal.

Ich vermute, dass mir der freundliche Chinamann statt eines BME280 einen „geschönten“ BMP280 geliefert hat, der ja bekanntlich keine Luftfeuchte messen kann. Scheint ja öfters zu passieren, siehe https://goughlui.com/2018/08/05/note-bosch-sensortec-bmp280-vs-bme280-sensor-confusion/.

Könnte man dies in deinem Modul abfangen, z.B. bei Luftfeuchtigkeit=0% die Taupunktberechnung anders behandeln.

Gruss
Bernd

Hallo Bernd,

habe mal versucht den Fehler abzufangen, kann es hier nicht testen.

Joachim

Hallo Joachim,

ich habe ein Update auf dein Modul gemacht. Fehler ist noch da. Modul löschen und wieder neu anlegen wollte ich erst mal vermeiden. Da kommen dann wieder meine Variablen und Archive durcheinander.

Gruss
Bernd

Kann mir jemand sagen wo ich die Befehlssyntx für IPS2GPIO finde?:banghead:
In der Modulreferenz ist nichts drin.
Ich möchte mehrere GPIO auf einem entfernten PI4 setzen.
Das Modul ist installiert und läuft.
In der Testumgebung kann ich setzen bzw. toggeln.
Mir fehlt eben die Syntax für die Scripte.

Im Editor GPIO eingeben und STRG-Space drücken ;), dann I2GIO1_SetPinOutput nehmen und die Parameter ansehen.

Danke für die Antwort.
Aber irgend etwas mache ich da wohl falsch.
Uncaught Exception: Instance does not implement this function

Ich habe folgende Zeile im Script:
I2GIO1_SetPinOutput(27211,23,true);

RequestAction (43756,true);
Michael

Ich danke Dir sehr - das geht.
Gibt es keine Dokumentation über das Modul?
Das ist doch sehr umfangreich.

…Dokumentation ist nicht so meine Stärke…[emoji4]
Das meiste ist hoffentlich selbsterklärend…

Joachim

Hallo,
ich wollte das Modul in einem frischen/neuen IPS 5.3 auf einem raspberry pi (2011) mit rasbian buster installieren.
Die entsprechenden Schnittstelle auf dem pi habe ich freigeschaltet.

Leider schlägt die Installation teilweise fehl. Das PIGPIO-Modul wird lediglich in der Modulverwealtung angezeigt, sonst sind keine weiteren Ordner, Dateien oder Einstellmöglichkeiten etc. vorhanden.

Was mach ich da falsch bzw. was fehlt hier noch zur vollständigen Installation.
Ich hatte das vor längerer Zeit unter einer IPS-Version 3.x oder 4.x schon mal am laufen.

…hast Du überhaupt eine neue Instanz angelegt?

Joachim

Oh… Ok. Danke das wars.

Da hab ich wohl was überlesen bzw. hatte das so in Erinnerung dass die Instanz automatisch bei Modulinstallattion angelegt wird.

Hallo,

aktuell scheitere ich an der Kommunikation mit einem Nextion-Display.

Früher konnte man in der IPS2GPIO_Display Instanz einen Connection-String angeben
Zwischenablage01.jpg

Aktuell läuft die Kommunikation ja direkt über zwei ausgewählte GPIO-Pins (GPIO-Nr. RxD, GPIO-Nr. TxD)
Zwischenablage02.jpg

Die IPS2GPIO_IO Instanz sieht aktuell folgendermaßen aus:
Zwischenablage03.jpg

Aktuell kommt keine Verbindung zum Nextion-Display zustande.
Gibt es hierzu noch einen Tipp, wie kann ich den Fehler z.B über Debug einkreisen.

Gruß
zkra

Hallo zkar,

das Modul habe ich selbst ewig nicht mehr genutzt…

Im Debug der Instanz aber insbesondere im Debug des Splitters bitte mal schauen…

Ich gehe mal davon aus, dass Du nicht PIN 5/6 sondern GPIO 5/6 nutzt?

Joachim

Hallo Joachim,

GPIO 5 = Pin 29, GPIO 6 = Pin 31

Bei Manueller Befehlsausgabe

Es kommt aber nichts am GPIO 6 = Pin 31 raus (Test über Terminalprogramm)

Müssen die GPIO sonst noch irgendwo freigeschaltet werden ?

Gruß
Rainer

Hallo,

irgendwie komme ich mit der IPS2GPIO_Display bzw. IPS2GPIO_IO Instanz nicht weiter.

Im Debug von IPS2GPIO_IO wird die Kommunikation richtig ausgegeben, an den Hardware-PINs kann ich jedoch keine Reaktion erkennen siehe oben.

Das Nextion-Display läuft problemlos außerhalb des Modules über eine Serial-Port Instanz dann an GPIO 14 (Pin 8) bzw GPIO 15 (Pin10).

Was könnte da am Raspi noch falsch laufen bzw falsch parametriert sein ?

Gruß
Rainer

Hallo Rainer,

ehrlicherweise kann ich Dir aktuell wenig helfen, weil ich das ganze erst einmal „nachbauen“ müsste, was wegen der bevorstehenden Feiertage etwas dauern wird.

Du kannst TxD und RxD „brücken“, um zu sehen ob dort Kommunikation stattfindet (aber bitte auf eigene Gefahr).

Das Gsnze hat definitiv mal funktioniert, ist aber lange her und ich selbst habe es nicht mehr aktiv verwendet. Der Grund dafür ist folgender: PIGPIO liefert selbst kein Event, wenn Daten vom Display eintreffen, diese werden gespeichert und müssen dann zyklisch ausgelesen werden, das ist doof , wenn man z.B. dort auf Buttons regieren möchte.

Was relativ gut geht, ist ein Gerät, das man anfragt und nur dann etwas zurücksendet, spontane Sendungen wie beim Druck des Buttons sind da eher unprofessionell zu verarbeiten.

Joachim