Garagen Lichtschranke

HMIP lokale Installation

Moderator: Co-Administratoren

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

Garagen Lichtschranke

Beitrag von Werni335 » 18.09.2023, 18:06

Hallo Leute.

Mein Name ist Werner, komme aus der Nähe von München und ich bin nicht nur neu hier, sondern bin auch Anfänger. Ich habe einen Raspberry Pi 3B+ und ich habe das Homematic Betriebssystem da laufen CCu3. Ich habe eine Garage mit einem Hörmann Antrieb (automatisches Flügeltor). Dazu habe ich auch das IP Modul für Hörmann Antriebe installiert. HmIP Mod Ho.
Jetzt habe ich eine Lichtschranke gebaut, mit Photozelle und Laser. Sollte der Laser unterbrochen sein, dann soll das Homematic Modul von Hörmann auf Stopp gehen, solange bis die Lichtschranke wieder frei ist. Auch sollten dabei die Remote Sender nicht funktionieren wenn der Laser unterbrochen ist. Die Photozelle habe ich auf den PIN 22 gelegt und möchte gerne den PIN abfragen. Dies mache ich mit:

system.Exec("echo 22 > /sys/class/gpio/export");
system.Exec("echo in > /sys/class/gpio/gpio22/direction");
var a = system.Exec("cat /sys/class/gpio/gpio22/value");
WriteLine(a);

Ich dachte wenn der Laser frei ist dann bekomme ich den Status 0 und wenn er unterbrochen ist, dann ist der Status 1. Oder umgekehrt. Wenn ich das in das Script einfüge und auf ausführen gehe, kommt immer nur 0. Auch wenn die Photozelle unterbrochen wird.

Kann mir da bitte jemand helfen? Vielen Dank im Voraus.
VG Werni335
Zuletzt geändert von Roland M. am 18.09.2023, 18:54, insgesamt 1-mal geändert.
Grund: Thema verschoben

Benutzeravatar
Henke
Beiträge: 1542
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 315 Mal

Re: Garagen Lichtschranke

Beitrag von Henke » 18.09.2023, 19:15

Code: Alles auswählen

system.Exec("echo 22 > /sys/class/gpio/export");
system.Exec("echo in > /sys/class/gpio/gpio22/direction");
string stdout; string stderr;
system.Exec ("cat /sys/class/gpio/gpio22/value",&stdout,&stderr);
var a = stdout;
Den Rückgabewert von Exec bekommst du so.

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

Re: Garagen Lichtschranke

Beitrag von Werni335 » 18.09.2023, 19:18

Danke. Ich werde es gleich ausprobieren.

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

Re: Garagen Lichtschranke

Beitrag von Werni335 » 18.09.2023, 19:24

Wenn ich jetzt also die Zeilen in mein script einfüge dann bekomme ich 0 wenn die photozelle leuchtet und ich auf script testen drücke und wenn ich dann das Licht abschalte und auf script testen drücke dann bekomme ich 1. Oder eben umgekehrt. Sehe ich das richtig? Bei WriteLine(a);

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

Re: Garagen Lichtschranke

Beitrag von Werni335 » 18.09.2023, 21:54

Das nächste Problem wäre jetzt, den richtigen Kanal von dem Gerät Garagentor zu aktivieren. Also wenn a= 1 dann dem Gerät Garagentor Kanal 1 auf stopp setzen. Dazu gibt es ein skript das zunächst feststellt, ob sich bei dem Garagentor überhaupt was ändert. Wenn ja, dann stelle ich fest, ob a=1 ist (also die Photozelle unterbrochen ist). Ist a=1 dann sollte das Garagentor, Kanal 1 auf stopp gesetzt werden. Welchen Befehl brauche ich denn um den letzten Teil umsetzen zu können? Also den a=1 Teil. Ich finde einfach die Lösung nicht. Sollte jemand eine Idee haben dann wäre ich sehr froh wenn er mir das mitteilen könnte. Vielen Dank.

Benutzeravatar
Henke
Beiträge: 1542
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 315 Mal

Re: Garagen Lichtschranke

Beitrag von Henke » 18.09.2023, 22:42

Werni335 hat geschrieben:
18.09.2023, 21:54
Dazu gibt es ein skript das zunächst feststellt, ob sich bei dem Garagentor überhaupt was ändert.
zeigen

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

Re: Garagen Lichtschranke

Beitrag von Werni335 » 18.09.2023, 22:51

Das habe ich hier gefunden, als Beispiel.

!- Alle Kanäle in wählbaren verschiedenen Räumen/Gewerken/Favoriten (trennen mit \t )
!- Original v0.1 by Alchy
!- Edited v0.2 by Baxxy
!- viewtopic.php?f=19&t=26800&p=573840#p573626

string liste = "Garage"; !- Gewerk oder Raum eintragen
!- Dont touch behind this Line
string index;integer counter = 0;
foreach (index, liste) {
object sec = dom.GetObject(index);
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
if (item.DPByHssDP("STATE").Value())
{counter = counter +1; WriteLine(item #" Status:\t"#item.DPByHssDP("STATE").Value());}
}}}

if (counter > 0) {WriteLine("Irgendwas ist an");

system.Exec("echo 22 > /sys/class/gpio/export");
system.Exec("echo in > /sys/class/gpio/gpio22/direction");
string stdout; string stderr;
system.Exec ("cat /sys/class/gpio/gpio22/value",&stdout,&stderr);
var a = stdout;
WriteLine(a);
else{WriteLine("Alles Aus!"); }
!_______________hier käme jetzt eine if Abfrage über den Zustand von a entweder 0 oder 1------ dann Gerät ansprechen
! zumindest habe ich mir das so vorgestellt?????

MichaelN
Beiträge: 9826
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 711 Mal
Danksagung erhalten: 1660 Mal

Re: Garagen Lichtschranke

Beitrag von MichaelN » 18.09.2023, 22:56

Wenn du code in Code Tags postest, ist es für alle Beteiligten leichter lesbar. Habe ich in den Debugging-Tips sogar erklärt.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: Garagen Lichtschranke

Beitrag von Werni335 » 18.09.2023, 23:00

ok. Danke für den Hinweis. Wo finde ich denn diese Debugging-Tips? Ich werde mich dann natürlich daran halten.

MichaelN
Beiträge: 9826
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 711 Mal
Danksagung erhalten: 1660 Mal

Re: Garagen Lichtschranke

Beitrag von MichaelN » 18.09.2023, 23:19

In der Signatur
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

Zurück zu „HomeMatic IP mit CCU“