- Offizieller Beitrag
©2021 Stefan K. (alias 66er)
Hallo liebe Shelly- und Homematic-Freunde.
Heute kann ich Euch die Einbindung des Shelly-Addon mit 1 ext. Schalter auf Shelly1 vorstellen.
Vielen Dank an @magnum1795 und Klaus 67 für die freundliche Unterstützung als Beta-Tester. Von Ihnen kam auch der Anstoß dieser Umsetzung, nachzulesen in diesem Thread.
Durch diese Kopplung wird auf der Homematic eine neue Variable autom. erzeugt, die den Zustand des externen Schalters (meist genutzt zur Darstellung, ob das Tor offen oder zu ist) und in einem frei definierbaren Intervall aktualisiert.
Voraussetzung:
Die Kopplung setzt eine bestehende Einbindung eines Shelly1 nach dieser Anleitung voraus.
Umsetzung:
- Das Aktualisierungsprogramm aus der Shelly 1 - Kopplung wird um eine 2. DANN-Zeile ergänzt, die das Skript für den Schalter am Addon ausführt.
- Nach Anpassen des Setup im neuen Skript und der 1. Ausführung ist die Variable angelegt und kann wie bekannt dem CUxD-Device für den Shelly 1 zugeordnet werden, damit sie im Device angezeigt wird.
Nun fehlt Euch nur noch das Skript:
! Skript V1.0.4 zur Schaltzustandaktualisierung eines Schalters am Shelly-Addon mit Originalfirmware ab Shelly-Firmware 1.9.x (c)2021 by 66er (alias Stefan K.)
! Publiziert und Updates auf https://smarthome-forum.eu/forum/index.php?board/145-homematic/
! Versionsdatum: 09.12.2021
! BITTE BEACHTEN:
! Dieses Skript legt selbstständig 1 zusätzliche Systemvariable auf Deiner Homematic-Zentrale an!
! Das vermeidet Inkonsistenzen und eine temporäre Blockade der CCU durch das Skript.
! Ausserdem erspart es Dir das manuelle Anlegen benötigter Systemvariablen.
! Wer das nicht möchte, kann dieses Skript leider nicht nutzen!
! Die Nutzung des Skriptes erfolgt auf eigenes Risiko.
! Aus der Nutzung entsteht kein Rechtsanspruch auf Suppport oder Fehlerbeseitigung durch den Autor
!Raum- oder Schalterbezeichnung (nur zur Orientierung, ggf anpassen)
!**** SETUP ******** SETUP ******** SETUP ******** SETUP ***
! ACHTUNG: Beim Anpassen der Adressen keine "" löschen!
! Setup der CUxD-GERÄTE
var url = "http://192.168.x.x/status"; ! IP-Adresse des Shelly mit Temp-Addon anpassen
! Bei Nutzung von Restrict Login im Shelly muß der IP-Adressse "Benutzername:Passwort@" vorangestellt werden
var execta = "CUxD.CUX2801001:1"; ! Adresse und Kanal des CUxD-Exec-Device angeben
!Setup der SYSTEMVARIABLEN
var svn = "Garagentorschalter"; !Name der Systemvariablen für den Schalterzustand anpassen
!****ENDE SETUP ********ENDE SETUP ********ENDE SETUP ******
!*****Ab hier NICHTS MEHR ÄNDERN *****
!****Abfrage des Temp-Addon****
dom.GetObject(""#execta#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject(""#execta#".CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject(""#execta#".CMD_RETS").State();
dom.GetObject(""#execta#".CMD_SETS").State("0");
!WriteLine(Antwort);
! Sysvar prüfen. ggf. anlegen
string sName= ""#svn#"";
if (!dom.GetObject (ID_SYSTEM_VARIABLES).Get (sName)) {
object svObj = dom.CreateObject(OT_VARDP,sName);
svObj.DPInfo("autom. angelegt durch Skript Addon-Switch");
svObj.ValueUnit("");
dom.GetObject (ID_SYSTEM_VARIABLES).Add(svObj);
svObj.ValueType(ivtBinary);
svObj.ValueSubType(istBool);
svObj.ValueName0("Geschlossen");
svObj.ValueName1("Offen");
svObj.State (true); !SCN=SH1AD10366R
dom.RTUpdate(0);
}
!Wert ermitteln
string word = "ext_switch";
integer word_laenge = word.Length();
integer word_position = Antwort.Find(word);
string daten = Antwort.Substr((word_position + word_laenge +16), 1);
integer word_position = daten.Find(word);
daten = daten.Substr(0, (word_position -3));
!WriteLine(daten);
! Sysvar setzen
dom.GetObject(""#svn#"").State(daten);
!WriteLine("Skript beendet");
!Ende Skript
Alles anzeigen
Viel Spass damit.
___________________________________________
Die Anleitung inkl. der Skripte und Bilder unterliegt dem Urheberrecht. Wer gegen das Urheberrecht verstößt (z.B. Bilder oder Texte unerlaubt kopiert und auf anderen Webseiten publiziert), macht sich gem. §§ 106 ff UrhG strafbar, kann zudem kostenpflichtig abgemahnt werden und muss Schadensersatz leisten (§ 97 UrhG).
© 2021 Stefan K. (alias 66er)
Alle Rechte vorbehalten