Garagen Lichtschranke
Moderator: Co-Administratoren
Re: Garagen Lichtschranke
Code: Alles auswählen
!- Alle Kanäle in wählbaren verschiedenen Räumen/Gewerken/Favoriten (trennen mit \t )
!- Original v0.1 by Alchy
!- Edited v0.2 by Baxxy
!- https://homematic-forum.de/forum/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!"); }
Re: Garagen Lichtschranke
Wie gesagt, jetzt käme dann eine if Abfrage über den Zustand von a entweder 0 oder 1------ dann das Gerät "Garage Kanal 1" ansprechen und Stopp auswählen.
zumindest habe ich mir das so vorgestellt?????
Was ich leider nicht weiß, mit welchem Befehl ich das Gerät !Garage Chanel 1 stopp" ansprechen muss. Hätte da einer eine Idee?
zumindest habe ich mir das so vorgestellt?????
Was ich leider nicht weiß, mit welchem Befehl ich das Gerät !Garage Chanel 1 stopp" ansprechen muss. Hätte da einer eine Idee?
-
- Beiträge: 9807
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 711 Mal
- Danksagung erhalten: 1656 Mal
Re: Garagen Lichtschranke
Also wenn das eine Sicherheits Einrichtung sein sollte, dann würde ich das nicht mit Homematic realisieren. Fällt die CCU aus, ist die Sicherheits Vorrichtung nicht mehr aktiv.
Dazu kommt, daß die CCU kein Echtzeit-Betriebssystem ist und nicht zur Steuerung von Prozessen im Sekundenbereich geeignet ist.
Dazu kommt, daß die CCU kein Echtzeit-Betriebssystem ist und nicht zur Steuerung von Prozessen im Sekundenbereich geeignet ist.
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 +++
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 +++
- Baxxy
- Beiträge: 11027
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 631 Mal
- Danksagung erhalten: 2283 Mal
Re: Garagen Lichtschranke
Ich halte das Ganze für keine gute Lösung!
Du müsstest ja theoretisch den GPIO zyklisch (im Sekundentakt) abfragen um zu verhindern das das Tor überhaupt losfährt wenn die Lichtschranke unterbrochen ist.
Oder du fragst den GPIO erst ab wenn sich das Tor in Bewegung setzt und stoppst es dann wieder wenn LS unterbrochen.
(ich denke so möchtest du das mit dem Script machen)
Der MOD-HO hat keine virtuellen Kanäle, du hast also keine Möglichkeit die DV's temporär zu deaktivieren (so es denn welche gibt)
Das Script selbst ist auch "oversized". Es soll ja nur der Antrieb gestoppt werden wenn die LS unterbrochen ist. Da braucht man nicht noch über irgendwas iterieren.
Aber gut, absolut ungetestet zum probieren...
(Seriennummer in der ersten Zeile anpassen!)
Du müsstest ja theoretisch den GPIO zyklisch (im Sekundentakt) abfragen um zu verhindern das das Tor überhaupt losfährt wenn die Lichtschranke unterbrochen ist.
Oder du fragst den GPIO erst ab wenn sich das Tor in Bewegung setzt und stoppst es dann wieder wenn LS unterbrochen.
(ich denke so möchtest du das mit dem Script machen)
Die "Remote-Sender" sind was? Direktverknüpfte IP-Fernbedienungen?
Der MOD-HO hat keine virtuellen Kanäle, du hast also keine Möglichkeit die DV's temporär zu deaktivieren (so es denn welche gibt)
Das Script selbst ist auch "oversized". Es soll ja nur der Antrieb gestoppt werden wenn die LS unterbrochen ist. Da braucht man nicht noch über irgendwas iterieren.
Aber gut, absolut ungetestet zum probieren...
(Seriennummer in der ersten Zeile anpassen!)
Code: Alles auswählen
string Seriennummer = "0001D3C99C4DCD";
integer Befehl = 2; !- spekulativ... die Liste geht vermutlich von 0 - 4 mit den Werten: NOP OPEN STOP CLOSE PARTIAL_OPEN
integer Kanal = 1;
string Datenpunkt = "DOOR_COMMAND";
string stdout;
string stderr;
integer Ergebnis = 0;
system.Exec("echo 22 > /sys/class/gpio/export");
system.Exec("echo in > /sys/class/gpio/gpio22/direction");
system.Exec ("cat /sys/class/gpio/gpio22/value",&stdout,&stderr);
Ergebnis = stdout.ToInteger();
WriteLine("Ergebnis: "# Ergebnis);
if (Ergebnis == 1) { dom.GetObject("HmIP-RF."#Seriennummer#":"#Kanal#"."#Datenpunkt).State(Befehl); }
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen