HM-LC-Sw4-WM

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

BDO
Beiträge: 73
Registriert: 14.07.2017, 13:27
Hat sich bedankt: 26 Mal
Danksagung erhalten: 1 Mal

HM-LC-Sw4-WM

Beitrag von BDO » 04.04.2020, 12:11

Hallo,
kann mir jemand bei der Lösung helfen?
Ich möchte bei einem HM-LC-Sw4-WM jeweils eines der 4 Relais per Variable auswählen.
Beispiel:

Code: Alles auswählen

var n = 3;
dom.GetObject("BidCos-RF.JEQ0143962:n.STATE").State(1) ;
So funktioniert das leider nicht. Was mache ich falsch?
Zuletzt geändert von alchy am 06.04.2020, 21:40, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Gruß Boris

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

Re: HM-LC-Sw4-WM

Beitrag von Baxxy » 04.04.2020, 12:21

BDO hat geschrieben:
04.04.2020, 12:11
Was mache ich falsch?
Versuche es mal so:

Code: Alles auswählen

var kanal = 3;
dom.GetObject("BidCos-RF.JEQ0143962:"# kanal #".STATE").State(1);
Grüße
Baxxy

BDO
Beiträge: 73
Registriert: 14.07.2017, 13:27
Hat sich bedankt: 26 Mal
Danksagung erhalten: 1 Mal

Re: HM-LC-Sw4-WM

Beitrag von BDO » 04.04.2020, 13:30

Hallo Baxxy,

vielen Dank! Das ist des Rätsels Lösung.
Gruß Boris

BDO
Beiträge: 73
Registriert: 14.07.2017, 13:27
Hat sich bedankt: 26 Mal
Danksagung erhalten: 1 Mal

Re: HM-LC-Sw4-WM

Beitrag von BDO » 05.04.2020, 15:48

Hallo Baxxy,

ich erhielt folgenden Tipp:

Code: Alles auswählen

var kanal = 3;
dom.GetObject("BidCos-RF.QEQ1334367:"# kanal #".STATE").State(1);
Dafür nochmals ein Dankeschön.

Die von mir angedachte Kanalauswahl mittels einer Systemvariablen will damit jedoch nicht gelingen, weil eine Zuweisung mittels

Code: Alles auswählen

var Kanal = dom.GetObject("SV_xxx").State();
nicht funktioniert. Gibt es hierfür eine Lösung?

Vielen Dank im Voraus.
Zuletzt geändert von alchy am 06.04.2020, 21:41, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Gruß Boris

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

Re: HM-LC-Sw4-WM

Beitrag von Baxxy » 05.04.2020, 15:56

BDO hat geschrieben:
05.04.2020, 15:48
Gibt es hierfür eine Lösung?
Deine Systemvariable heißt also "SV_xxx" ?
Was ist das für ein Typ? Zahl, Text oder Werteliste?

Wenn sie Typ Zahl ist sollte theoretisch...

Code: Alles auswählen

var kanal = dom.GetObject (ID_SYSTEM_VARIABLES).Get ("SV_xxx").Value().ToString(0);
dom.GetObject("BidCos-RF.JEQ0143962:"# kanal #".STATE").State(1);
funktionieren.

Grüße
Baxxy

BDO
Beiträge: 73
Registriert: 14.07.2017, 13:27
Hat sich bedankt: 26 Mal
Danksagung erhalten: 1 Mal

Re: HM-LC-Sw4-WM

Beitrag von BDO » 05.04.2020, 18:00

Hallo Baxxy,

wunderbar - vielen Dank! Es klappt wie gewünscht.
Es ist ein gutes Gefühl, dass es für Homematic-Scrits Profis mit viel Wissen für diese Sprache gibt.
Ich fühle mich häufig doch ziemlich klein und dumm.
Gruß Boris

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HM-LC-Sw4-WM

Beitrag von jp112sdl » 05.04.2020, 18:04

BDO hat geschrieben:
05.04.2020, 18:00
Ich fühle mich häufig doch ziemlich klein und dumm.
Und da noch niemand allwissend auf die Welt kam, hat der Hersteller für Unwissende eine Dokumentation geschrieben. :wink:
https://www.eq-3.de/service/downloads.html
Themenbereich: Script

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

BDO
Beiträge: 73
Registriert: 14.07.2017, 13:27
Hat sich bedankt: 26 Mal
Danksagung erhalten: 1 Mal

Re: HM-LC-Sw4-WM

Beitrag von BDO » 06.04.2020, 18:27

Ich will ein fleißger Schüler werden. Doch bis dahin noch eine Hilfeanfrage.
Denn ich bin mal wieder am Verzweifeln!

Ziel ist, mit einer Taste der Fernbedienung (HmIP-RC8) das Relais/Kanal 3 auf (HM-LC-Sw4-WM) EIN zuschalten, um es bei einem zweiten Tastendruck - der selben Taste - wieder AUS zuschalten. Damit soll ein Motor HOCH gefahren werden. Soweit kein Problem. Jetzt soll aber bei erneutem Tastendruck (das Relais 3 muss hierbei ausgeschaltet sein), die gleiche Funktion, jedoch auf einem anderen Kanal mit Relais 4 ausgeführt werden, um den Motor wieder HERUNTER zu fahren. So soll mit einer Taste der Motor hoch und wieder heruntergefahren werden.
Mein Lösungsansatz sieht derzeit so aus, will aber nicht funktionieren.

Code: Alles auswählen

var kanal = dom.GetObject("SV_cnt").Value().ToString(0);
boolean n = dom.GetObject("BidCos-RF.QEQ1334367:"# kanal #".STATE").Value();
if (n ==0) {n = 1;}
else {n = 0;}
dom.GetObject("BidCos-RF.QEQ1334367:"# kanal #".STATE").State(n);

kanal = kanal.ToInteger();
if ((n == 0) && (kanal = 3)) 
{kanal = 4;}
else
{kanal = 3;}
dom.GetObject("SV_cnt").State(kanal);
Hat ein "Wissender" die Muße sich meinen Fehler einmal anzusehen?
Eine Lösung wäre ein tollesOsterei.
Zuletzt geändert von alchy am 06.04.2020, 21:43, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Gruß Boris

Benutzeravatar
stan23
Beiträge: 2038
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 580 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: HM-LC-Sw4-WM

Beitrag von stan23 » 06.04.2020, 20:14

Ich benutze die Skriptsprache nicht kaum und kann dir da nicht weiterhelfen, aber ein Fehler ist mir ins Auge gesprungen:

Code: Alles auswählen

if ((n == 0) && (kanal = 3)) 
Du musst mit == vergleichen, so nämlich:

Code: Alles auswählen

if ((n == 0) && (kanal == 3)) 
Zwischendrin ein paar

Code: Alles auswählen

WriteLine("n=" # n # ", Kanal=" # kanal);
helfen beim Debuggen
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: HM-LC-Sw4-WM

Beitrag von dtp » 07.04.2020, 10:00

Und noch was, "boolean" kennt nur true und false, aber nicht 1 und 0. Steht aber auch in der Doku drin. 8)

Ich frage mich aber, warum du sowas über ein Skript lösen willst. Das geht doch eigentlich auch direkt mit einem WebUI-Programm.

Wenn
Taste gedrückt auf Aktualisierung auslösen
UND
BidCos-RF.QEQ1334367:3 auf 0 nur prüfen
UND
BidCos-RF.QEQ1334367:4 auf 1 nur prüfen
DANN
BidCos-RF.QEQ1334367:4 sofort auf 0
BidCos-RF.QEQ1334367:3 verzögert um 1 Sekunde auf 1

Sonst wenn
Taste gedrückt auf Aktualisierung auslösen
UND
BidCos-RF.QEQ1334367:3 auf 1 nur prüfen
UND
BidCos-RF.QEQ1334367:4 auf 0 nur prüfen
DANN
BidCos-RF.QEQ1334367:3 sofort auf 0
BidCos-RF.QEQ1334367:4 verzögert um 1 Sekunde auf 1
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „HomeMatic allgemein“