Setzen der GIPO Pins auf High oder Low im Skript

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Werni335
Beiträge: 27
Registriert: 18.09.2023, 17:36
System: CCU

Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Werni335 » 02.10.2023, 00:08

Guten Abend. Ich habe da folgendes Problem. Ich möchte in der Raspberrymatic im Skript einen GPIO auf High oder Low setzen, der dann bei (high, also 1) ein Relai einschaltet und bei (LOW, also 0) wieder ausschaltet. Bin doch etwas verzweifelt, da ich nix gefunden habe. Kann mir da bitte jemand helfen? Meine Befehle funktionieren nicht. Vielen Dank!
[codesystem.Exec("echo 24 > /sys/class/gpio/export");
system.Exec("echo out > /sys/class/gpio/gpio24/direction");
system.Exec("echo 1 > /sys/class/gpio/gpio24/value");
var a = system.Exec("cat /sys/class/gpio/gpio24/value");
WriteLine(a);
][/code]

cmjay
Beiträge: 2393
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 251 Mal
Danksagung erhalten: 352 Mal

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von cmjay » 02.10.2023, 08:32

Werni335 hat geschrieben:
02.10.2023, 00:08
Ich möchte in der Raspberrymatic im Skript einen GPIO auf High oder Low setzen
https://homematic-forum.de/forum/viewt ... io#p699449
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Baxxy » 02.10.2023, 08:59

Ich hatte dir doch letztens für deine Lichtschranke ein Script gemacht was nach deinen Angaben auch funktioniert(e). :shock:
viewtopic.php?f=60&t=79927&start=10#p778026

Das kannst du doch als Ausgangslage nutzen.

Zum Auslesen des Wertes musst/kannst du immer folgendes Schema verwenden:

Code: Alles auswählen

string stdout;
string stderr;
integer Ergebnis = 0;
system.Exec ("cat /sys/class/gpio/gpio24/value",&stdout,&stderr);
Ergebnis = stdout.ToInteger();
WriteLine("Ergebnis: "# Ergebnis);

Werni335
Beiträge: 27
Registriert: 18.09.2023, 17:36
System: CCU

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Werni335 » 02.10.2023, 09:56

Ja. Danke. Das ist richtig. Ich möchte jetzt aber den PIN direkt auf HIGH oder LOW setzen. Nicht auslesen, sondern setzen.

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Baxxy » 02.10.2023, 10:42

Ich habe von dem GPIO-Zeugs keine Ahnung, ein kurzer Crash-Kurs im Netz zeigte aber das du das soweit richtig machst.
https://www.ics.com/blog/gpio-programmi ... -interface
Werni335 hat geschrieben:
02.10.2023, 09:56
Ich möchte jetzt aber den PIN direkt auf HIGH oder LOW setzen.
Das machst du doch über die Zeile:

Code: Alles auswählen

system.Exec("echo 1 > /sys/class/gpio/gpio24/value");
(hier setzt du auf high)

Anschließend willst du den Wert von gpio24 auslesen und als WriteLine ausgeben.
Und das machst du falsch, daher der Hinweis im vorigen Post von mir.

cmjay
Beiträge: 2393
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 251 Mal
Danksagung erhalten: 352 Mal

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von cmjay » 02.10.2023, 10:48

Dank WiringPi, das in der RaspberryMatic integriert ist, geht das ganz simpel. Siehe Link in meinem vorangehenden Post ...
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Werni335
Beiträge: 27
Registriert: 18.09.2023, 17:36
System: CCU

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Werni335 » 02.10.2023, 11:35

Vielen Dank. Ich weiß Deine Bemühungen zu schätzen. Jedoch habe ich es nicht kappiert. Wo muss ich die Zeile einfügen? Danke!

Benutzeravatar
Baxxy
Beiträge: 10851
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Baxxy » 02.10.2023, 13:49

Werni335 hat geschrieben:
02.10.2023, 11:35
Wo muss ich die Zeile einfügen?
Welche Zeile?

Ich lese heraus das du am GPIO24 ein Relais hängen hast welches du EINschalten möchtest mittels:

Code: Alles auswählen

ystem.Exec("echo 24 > /sys/class/gpio/export");
system.Exec("echo out > /sys/class/gpio/gpio24/direction");
system.Exec("echo 1 > /sys/class/gpio/gpio24/value");
Was geht daran genau nicht?
Hast du GPIO24 gemessen nachdem du den Befehl abgesetzt hast (wenn kein Relais dran)?
Hast du sichergestellt das GPIO24 nicht anderweitig genutzt wird (Funkmodul)?

M.E. machst du das mit den 3 Befehlszeilen richtig.
Der Rest deines Codes zielte darauf ab "value von GPIO24" wieder auszulesen.
Der konnte nicht funktionieren daher musst du Zeile 3+4 deines Codes durch alles was ich postete ersetzen.

Grundsätzlich kannst du dir das aber auch sparen den du weißt ja welchen Wert "value von GPIO24" hat, da du den Wert (1) eine Zeile vorher selbst setzt.

Werni335
Beiträge: 27
Registriert: 18.09.2023, 17:36
System: CCU

Re: Setzen der GIPO Pins auf High oder Low im Skript

Beitrag von Werni335 » 03.10.2023, 00:44

Vielen Dank. Wie bekomme ich denn heraus welcher PIN noch frei ist? Ich habe das große Funkmodul.

Antworten

Zurück zu „HomeMatic allgemein“