GPIO per SSH als Switch
-
- Beiträge: 49
- Registriert: 2. Jan 2018 13:59
GPIO per SSH als Switch
Ist es möglich, auf einem anderen Raspi im lokalen Netz, ein GPIO als Switch zu schalten? Was problemlos funktioniert, ist das Ausführen per SSH eines entfernten BASH Scripts, welches den GPIO schaltet. Eventuell würde auch hier die Möglichkeit bestehen, solch ein Script per Switch auszuführen (mit entsprechenden Parametern für ein On und Off) z.B script.sh 0 für On und script.sh 1 für off.
-
- Beiträge: 99
- Registriert: 30. Jul 2016 19:51
- Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht
Re: GPIO per SSH als Switch
Verstehe deine Frage leider nicht ganz.
Möchtest du ein Item als Switch definieren und darüber auf einem entfernten PI via SSH ein Script für On und eins für Off ausführen, welches ein GPIO Pin ein-/ausschaltet?
Oder möchtest du an einem entfernten PI einen Switch/Schalter an einem GPIO Pin anschließen und diesen Status des Schalters in OpenHAB über ein Script via SSH Abfragen?
Gruß iBot
Gesendet von meinem ONE A2003 mit Tapatalk
Möchtest du ein Item als Switch definieren und darüber auf einem entfernten PI via SSH ein Script für On und eins für Off ausführen, welches ein GPIO Pin ein-/ausschaltet?
Oder möchtest du an einem entfernten PI einen Switch/Schalter an einem GPIO Pin anschließen und diesen Status des Schalters in OpenHAB über ein Script via SSH Abfragen?
Gruß iBot
Gesendet von meinem ONE A2003 mit Tapatalk
-
- Beiträge: 49
- Registriert: 2. Jan 2018 13:59
Re: GPIO per SSH als Switch
Ich möchte ein Item als Switch, welches per SSH einen GPIO ein bzw ausschalten kann.
Ich habe das nun mittlerweile per rules und einem Bash Script gelöst bekommen.
Item
heizung.sh
heizung.rules
Ich habe das nun mittlerweile per rules und einem Bash Script gelöst bekommen.
Item
Code: Alles auswählen
Switch heizung "Heizung" <heating> { gpio="pin:27 activelow:yes initialValue:high" }
Code: Alles auswählen
#!/bin/bash
/usr/bin/ssh -i /home/openhab/.ssh/id_ed25519 openhab@pi1.local "sudo /bin/bash /script/openhab_heizung.sh $1"
Code: Alles auswählen
rule "Heizung"
when
Item heizung changed to ON
then
executeCommandLine("bash /etc/openhab2/scripts/heizung.sh 0")
Thread::sleep(3600000)
sendCommand(heizung, OFF)
executeCommandLine("bash /etc/openhab2/scripts/heizung.sh 1")
end
rule "Heizung_off"
when
Item heizung changed to OFF
then
executeCommandLine("bash /etc/openhab2/scripts/heizung.sh 1")
end
-
- Beiträge: 99
- Registriert: 30. Jul 2016 19:51
- Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht
Re: GPIO per SSH als Switch
Hallo Hille,
bei mir habe ich SSH Scripte um 433 MHz Steckdosen zu schalten, der Sender hängt an einem entfernen PI, auf den ich mich via SSH Verbinde.
Meine Lösung sieht wie folgt aus, vllt hilft es dir ja noch zu optimieren:
Es gibt also zwei Exec Things, einmal ein und einmal aus, hier liegt ein SSH Script hinter, welches auf dem PI ausgeführt wird auf dem OpenHAB läuft, in diesem Script wird dann entsprechend eine SSH Verbindung zum externen PI aufgebaut und dort das Script zum Senden ausgeführt.
In der Item Definition gibt es dann 3 Items.
1. Switch für die Darstellung des aktuellen Zustandes und zum antriggern der Items zum wirklichen schalten via Exec Binding
2. Switch fürs Einschalten via Exec
3. Switch fürs Ausschalten via Exec
Und dazu gibt es dann eine Rule die das ganze entsprechend umsetzt:
Gruß iBot
bei mir habe ich SSH Scripte um 433 MHz Steckdosen zu schalten, der Sender hängt an einem entfernen PI, auf den ich mich via SSH Verbinde.
Meine Lösung sieht wie folgt aus, vllt hilft es dir ja noch zu optimieren:
Code: Alles auswählen
Thing exec:command:wohnzimmer_mediatv_strom_ein "Wohnzimmer MediaTV Strom Ein" @ "Wohnzimmer" [command="/srv/openhab_scripts/funksteckdosen_schalten.sh 11101 A ON", interval=0, timeout=10]
Thing exec:command:wohnzimmer_mediatv_strom_aus "Wohnzimmer MediaTV Strom Aus" @ "Wohnzimmer" [command="/srv/openhab_scripts/funksteckdosen_schalten.sh 11101 A OFF", interval=0, timeout=10]
Code: Alles auswählen
Switch Wohnzimmer_mediatv_Strom "Wohnzimmer MediaTV Strom"
Switch Wohnzimmer_mediatv_Strom_ein_RUN "Wohnzimmer MediaTV Strom EIN" { channel="exec:command:wohnzimmer_mediatv_strom_ein:run" }
Switch Wohnzimmer_mediatv_Strom_aus_RUN "Wohnzimmer MediaTV Strom AUS" { channel="exec:command:wohnzimmer_mediatv_strom_aus:run" }
1. Switch für die Darstellung des aktuellen Zustandes und zum antriggern der Items zum wirklichen schalten via Exec Binding
2. Switch fürs Einschalten via Exec
3. Switch fürs Ausschalten via Exec
Und dazu gibt es dann eine Rule die das ganze entsprechend umsetzt:
Code: Alles auswählen
/* Media Strom Exec Rules */
rule "Wohnzimmer Media Strom - Ein"
when
Item Wohnzimmer_Media_Strom changed from OFF to ON
then
Wohnzimmer_mediatv_Strom_ein_RUN.sendCommand(OFF)
end
rule "Wohnzimmer Media Strom - Aus"
when
Item Wohnzimmer_Media_Strom changed from ON to OFF
then
Wohnzimmer_mediatv_Strom_aus_RUN.sendCommand(OFF)
end