Modul zur Nutzung der Raspberry Pi GPIO

Falsch.
Du kannst sie dennoch in der Konsole ändern, wie jede Variable.
DisableAction ist die Bedingungen aus der Visualisierung nicht der Konsole.

Jetzt kann man im WF den Output nicht mehr schalten…,Absicht?
Michael

erstmal muss ich sagen, megageil das es jetzt hierfür ein Modul gibt :slight_smile:

ich habe jetzt einen Pi am laufen mit Nextion Display und das Modul IPS2GPIO eingebunden.
Gibt es jetzt hierzu irgendwo eine Doku mit welchen Befehlen ich was zum Nextion hinschicken kann? und wo kommen die Befehle vom Nextion an? Wie spiele ich die Firmware hoch?

danke euch

@Michael: Danke für die Info, um in Deinem Beispiel zu bleiben ich dachte schon das ich am Gaspedal drehe und nicht am Tacho, da es im Beispiel ja ein GPIO-Output ist (als eher eine Ausgabe-Variable). Verstanden habe ich jetzt das es eben nur eine Status-Variable des GPIO-Output ist (also doch nur der Tacho).

@Joachim: Ja es war so, in der Konsole wurde die Status-Variable geändert aber eben nicht an der Hardware des Raspi. Wie oben beschrieben ist das dann ja i.O. und Du überlegst höchstens auch an der Konsole die Status-Variable nicht änderbar zu machen.

Zwei weitere Kleinigkeiten die mir bei meiner Installation noch aufgefallen sind:

Bei IPS2GPIO_RPi wurde im Webfront bei den Variablen für den Speicher z.B. Memory Total kein Wert ausgegeben da das Variablenprofil falsch ist. Das Variablenprofil „megabyte“ ist als Integer angelegt, die Memory Variablen sind jedoch Float. Beim Variablenoprofil „kilobyte“ ist es evtl. ähnlich.

Ebenfalls in IPS2GPIO_RPi wird bei mir als Board „Unbekannte Revisions Nummer“ bei eine PI 2 Modell B V1.1 ausgegeben. Ich weis jedoch nicht wo man die Revisions Nummer genau im Dateisytem des Raspi auslesen kann sonst hätte ich dort einmal nachschauen was bei meinem Pi da so drin steht.

Gruß
Rainer

… ist nicht möglich.
Es fehlt aktuell auch ‚nur‘ der Warnhinweis in der Konsole, dass diese Variable Read-Only ist -> Aber auch diesen kann man ja einfach bestätigen :wink:

Also nix was aktuell verbessert werden kann :smiley:

Michael

…ich versuche das alles mal zu beantworten…

Variablenänderung in der Konsole:
Gestern war ich hinsichtlich der Änderungsmöglichkeit der Variablen in der Konsole selbst sehr verunsichert - so hatte ich das nie genutzt. Aber das hat sich ja nun aufgeklärt. Dennoch sollte es so sein, dass wenn Du die Variable im Webfront visualisierst, der Schaltvorgang fehlerfrei durchgeführt wird!

RPi-Instanz:

  • Ich hatte zwischendurch alle Werte auf MB geändert. Wenn Du also noch kb hast, dann ggf. mal die Instanz komplett löschen und neu einrichten, evtl. hat sich da etwas überschnitten. (ggf. vorher Modul-Update?)
  • Bitte poste einmal, was bei Dir bei der Variablen „Revision“ steht, daraus leitet sich der Text für „Board“ ab, ggf. fehlt in der „Übersetzung“ eine Version.
  • Hinsichtlich der Daten - auch oder gerade weil sie so vom Raspberry Pi kommen - bin ich manchmal etwas verunsichert. So müssten doch eigentlich „Memory Total“, „Memory Free“ und „Memory Available“ eine Summe ergeben??? Auch wird die Ermittlung der LoadAvarage über den Weg den ich beschritten viel diskutiert…

Nextion Display:
Das Ganze ist noch ziemlich rudimentär. Bin da hinichtlich der Wünsche und Vorschläge der Nutzer offen. Es hängt ja auch insbesondere damit zusammen, wie man die Datenübergabe im Display selbst umsetzt. Ankommende Daten sollten auf jeden Fall in den Status-Variablen im IPS sichtbar sein.
Ein Upload läuft vom Prinzip her so: 1. Datei am Nextion-Editor erstellen, 2. Datei auf das Device kopieren, auf dem auch IPS läuft, 3. Update-Funktion der Instanz nutzen

Joachim

Bezüglich dem Nextion wäre ein Befehl wünschenswert mit dem man auch zum Nextion Befehle/Variablen schicken kann. Damit man z.B. eine Seite wechseln kann oder die Temperatur übergeben kann. Kannst du das noch einbauen :wink: danke!

Gesendet von meinem SM-G935F mit Tapatalk

…das ist bereits enthalten.
Über I2GDSP_Send(ID, $Message); …

Joachim

Nachtrag: Das ist quasi der „Allgemeine“ Befehl, mit der Funktion kannst Du dann alles senden, was das Display „versteht“. Man könnte selbstverständlich auch „spezielle“ Funktionen implementieren, die dann nur eine spezielle Aufgaben haben. Ist das so gemeint?

Ah cool perfekt ja das würde reichen werde ich nachher mal testen

Gesendet von meinem SM-G935F mit Tapatalk

  • Bitte poste einmal, was bei Dir bei der Variablen „Revision“ steht, daraus leitet sich der Text für „Board“ ab, ggf. fehlt in der „Übersetzung“ eine Version.

Board = „Unbekannte Revisions Nummer!“
Revision = „2a01041“
Hardware = „BCM2709“

Auszug IPS2GPIO_RPi nach Update Modul


		// Profil anlegen
		$this->RegisterProfileInteger("megabyte", "Information", "", " MB", 0, 1000000, 1);
		$this->RegisterProfileInteger("kilobyte", "Information", "", " kb", 0, 1000000, 1);
		$this->RegisterProfileFloat("frequenzy.mhz", "Speedo", "", " MHz", 0, 10000, 0.1, 1);
...
		$this->RegisterVariableInteger("MemoryCPU", "Memory CPU", "megabyte", 60);
		$this->DisableAction("MemoryCPU");
		$this->RegisterVariableInteger("MemoryGPU", "Memory GPU", "megabyte", 70);
		$this->DisableAction("MemoryGPU");
...
		// Arbeitsspeicher
		$this->RegisterVariableFloat("MemoryTotal", "Memory Total", "megabyte", 200);
		$this->DisableAction("MemoryTotal");
		$this->RegisterVariableFloat("MemoryFree", "Memory Free", "megabyte", 210);
		$this->DisableAction("MemoryFree");
		$this->RegisterVariableFloat("MemoryAvailable", "Memory Available", "megabyte", 220);
		$this->DisableAction("MemoryAvailable");
		// SD-Card
		$this->RegisterVariableFloat("SD_Card_Total", "SD-Card Total", "megabyte", 300);
		$this->DisableAction("SD_Card_Total");
		$this->RegisterVariableFloat("SD_Card_Used", "SD-Card Used", "megabyte", 310);
		$this->DisableAction("SD_Card_Used");
		$this->RegisterVariableFloat("SD_Card_Available", "SD-Card Available", "megabyte", 320);
		$this->DisableAction("SD_Card_Available");

Profile „megabyte“ wird als ProfileInteger angelegt, die Verwendung erfolgt dann als Integer- und als Float-Variable

Gruß
zkra

Hallo Rainer,

die erste 2 deutet wohl darauf hin, dass der Raspberry übertaktet ist. Auf jeden Fall habe ich diese Version noch mal dem array hinzugefügt.

Das mit den Variablen ist selbstverständlich nicht in Ordnung. Ich werde das korrigieren und melde mich dann!

Joachim

Hallo Rainer,

das sollte jetzt auch behoben sein - auf der Uni gab es in Mathe von der Dozentin immer ein Haribo, wenn man sie bei einem Fehler ertappte - meistens blieb der Behälter bis zum Ende des Semesters ziemlich voll.:smiley:
Du hast Dir jetzt schon das eine oder andere verdient!:wink:

Joachim

Hallo Joachim,

… wenn überhaupt dann hast Du Dir höchstens die Haribos verdient, schon alleine deswegen das Du uns an Deinem Modul teilhaben läßt. Deshalb zumindestens hier nochmals ein breites Dankeschön.

Wenn ich es richtig verstehe ist das Thema mit den Profilen noch nicht ganz bereinigt. Es gibt jetzt zwar das RegisterProfileFloat „megabyte.MB“ aber auch noch zwei verschiedene Variablen-Typen bei dem das Profil angewendet wird (Integer und Float).

Hier noch die Stelle an der Integer verwendet wird.


	$this->RegisterVariableInteger("MemoryCPU", "Memory CPU", "megabyte.MB", 60);
	$this->DisableAction("MemoryCPU");
	$this->RegisterVariableInteger("MemoryGPU", "Memory GPU", "megabyte.MB", 70);
	$this->DisableAction("MemoryGPU");

Ich meine entweder müßten zwei Profile eines unter Integer und eines unter Float angelegt werden, oder alle Memory Variablen den Typ Float haben.

Gruß
Rainer

…jetzt sollten alle „MB“ einheitlich auf Float umgestellt sein…

Im Übrigen:

  • Memory Total/Free/Available soll so richtig sein - es bildet so keine Summe… (Quelle habe ich jetzt nicht mehr zur Hand, war aber in der Linux Dokumentation)
  • Bei der Umrechnung der SD-Card-Speicher bin ich mir nicht ganz so sicher. Ich bekomme es in kb geliefert und rechne es einfach durch 1000. Das ist ja bei speicher immer so eine Sache, wäre schön, wenn das mal jemand verifizieren könnte.
    -An der - nach Meinung der Foren - genaueren Berechnung de CPU-Auslastung bin ich dran, deswegen läuft aktuell im Log immer so ein Array durch…

Joachim

Hallo,

vielen Dank für dein Modul!
Ich habe es heute installiert und leider springt bei mir der Client Socket Port immer auf 8888 zurück, auch wenn ich ihn manuell auf 22 stelle (was dann keine Kommunikation bedeutet)
Muss bei dem Clientsocketport nicht der ssh port (bei mir 22) rein?
Beim bluetoothmodul reicht es einfach meine Bluetooth mac des Handys anzugeben und schon sollten die Variablen richtig gesetzt werden?

Sorry für die Anfängerfragen…

Danke und lieben Gruß
Adam

Hallo Adam,

Port 8888 ist der GPIO-Server - das muss also so sein.
Bitte daran denken auf dem Raspberry Pi den GPIO-Server in der Raspi-config zu akivieren.

Joachim

danke Joachim, hätte schwören können das ich den gestartet hatte…egal, jetzt läufts…jetzt nur noch die bluetoothsache probieren

…ach ja, eben vergessen:
Die Bluetooth MAC aus dem Smartphone in das Feld eintragen (Format beachten) und schauen ob beim Telefon Bluetooth auch aktiviert ist.
Das funktioniert eigentlich ganz gut.

Wenn man eine richtige Verbindung aufbauen würde, könnte man noch deutlich mehr Informationen bekommen z.B. die Feldstärke. Mit mehreren Raspberry Pi im Haus könnte man da sicherlich noch etwas über den aktuellen Ort im Haus berechnen.
Leider kenne ich mich da noch nicht so aus. Wenn da einer Input liefern kann bin ich für Hinweise dankbar…:wink:

Joachim

Hallo,

hmmm, hat das hier jemand mit einem IPhone am laufen?
Mac-Adresse ist richtig eingetragen, Bluetooth ist an und nix :frowning:

Danke und lieben Gruß
Adam

Hallo Adam,

läuft hier mit verschiedenen iPhone einwandfrei. Was hast Du denn für ein Raspberry Pi Modell?

Joachim

Hallo Joachim,

danke für deine Turbohilfe. Ich habe einen Raspberry 3 (also mit integriertem Bluetooth) und habe heute noch mal die Bt Instanz gelöscht und neu angelegt, aber es wird nichts aktualisiert. Habe auch definitiv die Bluetooth Mac des iphones genommen und zum Test auch mal das iPhone meiner Frau eingetragen, die Anwesenheit wird leider nicht erkannt/gesetzt :frowning:

Gruß
Adam