Analoger Eingang-Skript-Systemvariable

Haussteuerung mittels mediola

Moderator: Co-Administratoren

VolGra
Beiträge: 86
Registriert: 24.03.2012, 11:40
Hat sich bedankt: 19 Mal
Danksagung erhalten: 2 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von VolGra » 15.06.2023, 17:41

Baxxy hat geschrieben:
15.06.2023, 17:29
Zeige mal die Ausgabe vom Script testen...
Deine RM kam eher. Hier der Shot:
Bild
Dateianhänge
Skripttest.jpg

Matsch
Beiträge: 5452
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 743 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Matsch » 15.06.2023, 17:45

Dir ist schon klar, wenn du eine real-Zahl mit * 1 (integer) multiplizierst, dann wird auch das Ergebnis in integer gewandelt, was du sicher nicht willst.
Unabhängig vom Sinn der Zeile müßtest du mit 1.0 (real) multiplizieren/dividieren.

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

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Baxxy » 15.06.2023, 17:56

Du musst das Script ausführen, nicht überprüfen.
(Programme&Zentralenverknüpfungen (Programmübersicht) Button unten "Script testen")

Ohne zu wissen was das für ein Faktor ist kann ich dir das nicht abnehmen.

Was ich insgesamt herausgelesen habe ist, das du den Wert aus dem Jack in eine SysVar schreiben willst.
1:1 ginge das mit einem Einzeiler, wenn Berechnungen dazu kommen wird es etwas mehr.

Hier noch eine "Debug-Version" des Scriptes, wie gesagt ausführen im "Script testen".

Code: Alles auswählen

object jack_dp = dom.GetObject("CCU-Jack.JACK000005:3.VOLTAGE");
string Faktor_SV_Name = "Faktor1";
string Speicher_SV_Name = "WWTempIst";

if (jack_dp) {
    WriteLine("Jack-Datenpunkt gefunden...");
    real Wert1 = jack_dp.Value();
    }
  else {
     WriteLine("Jack-Datenpunkt nicht gefunden... Exit"); quit; }
     WriteLine("Wert1 = "# Wert1);
     object faktor_sv = dom.GetObject (ID_SYSTEM_VARIABLES).Get (Faktor_SV_Name);
 if (faktor_sv) {
 	 WriteLine("Faktor-Systemvariable gefunden...");
     real faktor1 = faktor_sv.Value() * 1;
     WriteLine("Faktor1 = "# faktor1);
     real Ausgabe1 = (Wert1 * faktor1) / 1;
     WriteLine("Ausgabe1 = "# Ausgabe1);
     }
   else { WriteLine("Faktor-Systemvariable nicht gefunden... Exit"); quit; }
     object speicher_sv = dom.GetObject (ID_SYSTEM_VARIABLES).Get (Speicher_SV_Name);
 if (speicher_sv) { WriteLine("Speicher-Systemvariable gefunden...");
     speicher_sv.State(Ausgabe1);
 	 }
   else { WriteLine("Speicher-Systemvariable nicht gefunden... Exit"); quit; }
Zuletzt geändert von Baxxy am 15.06.2023, 18:01, insgesamt 1-mal geändert.

VolGra
Beiträge: 86
Registriert: 24.03.2012, 11:40
Hat sich bedankt: 19 Mal
Danksagung erhalten: 2 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von VolGra » 15.06.2023, 18:01

Matsch hat geschrieben:
15.06.2023, 17:45
Dir ist schon klar, wenn du eine real-Zahl mit * 1 (integer) multiplizierst, dann wird auch das Ergebnis in integer gewandelt, was du sicher nicht willst.
Unabhängig vom Sinn der Zeile müßtest du mit 1.0 (real) multiplizieren/dividieren.
Danke für die Idee, habe ich gleich probiert. Leider auch erfolglos.

Dessen ungeachtet gehört in der Tat dieser Müll raus. Aber leider ist mein Wissen die seit mehr als 20Jahre vergangene alte diskrete Digitalelektronik. Und nun nach 30Jahren Selbständigkeit in einem völlig artfremden Beruf versuche ich als Rentner hier reinzukommen..... Dewegen meine leise Bitte an Baxxy von einem Analphabeten :oops: :?

VolGra
Beiträge: 86
Registriert: 24.03.2012, 11:40
Hat sich bedankt: 19 Mal
Danksagung erhalten: 2 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von VolGra » 15.06.2023, 18:17

Baxxy hat geschrieben:
15.06.2023, 17:56
von Baxxy » 15.06.2023, 17:56
Du musst das Script ausführen, nicht überprüfen.
Deine debug-Version bringt:
Jack-Datenpunkt gefunden...
Wert1 = 37.100000
Faktor-Systemvariable nicht gefunden... Exit

Der Test Deines Skript-Vorschlages bringt im Ausgabefenster "Wert1 = 37.100000".
Also liegt es an dieser sch.. nutzlosen Berechnung mit dem Faktor 1 dividiert mit 1... Nun kann ich mich morgen hinsetzen und versuchen, diesen Müll zu streichen oder Du kürzt das Elend ab. In der Hoffnung, dass ich dann das Forum mit derartig offensichtlichen Kleinigkeiten nicht weiter belästige :oops:
Grüße
Volker

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

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Baxxy » 15.06.2023, 18:30

Es liegt eher daran das es die Systemvariable "Faktor1" nicht gibt oder der Name nicht passt.

Das könntest du im Script korrigieren.

Ansonsten hier die reduzierte Version:

Code: Alles auswählen

object jack_dp = dom.GetObject("CCU-Jack.JACK000005:3.VOLTAGE");
string Speicher_SV_Name = "WWTempIst";

dom.GetObject (ID_SYSTEM_VARIABLES).Get (Speicher_SV_Name).State(jack_dp.Value());
Wie gehabt im Script testen ausführen, dann kontrollieren ob in der SysVar was ankommt.

VolGra
Beiträge: 86
Registriert: 24.03.2012, 11:40
Hat sich bedankt: 19 Mal
Danksagung erhalten: 2 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von VolGra » 15.06.2023, 18:36

Baxxy hat geschrieben:
15.06.2023, 17:56
Ohne zu wissen was das für ein Faktor ist kann ich dir das nicht abnehmen.
Hallo Baxxy,
hab den Fehler nun beseitigt, indem ich die Schreibweise des Faktors verändert habe (was Faktor(leer)1...)
Thema ist eigentlich abgehakt. Dabei evtl. gelernt mit "writeline" und mit Skripttest umzugehen....
Werde nun mal versuchen, die Berechnung rauszunehmen. Dürfte ich mich bei Dir per PN melden, wenn ich es nicht schaffe?
Recht herzlichen Dank
Volker

[sprotte80]
Beiträge: 336
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von [sprotte80] » 15.06.2023, 18:40

Hi
Matsch hat geschrieben:
15.06.2023, 17:45
Dir ist schon klar, wenn du eine real-Zahl mit * 1 (integer) multiplizierst, dann wird auch das Ergebnis in integer gewandelt, was du sicher nicht willst.
Unabhängig vom Sinn der Zeile müßtest du mit 1.0 (real) multiplizieren/dividieren.
Dir ist schon klar das das nonsens ist wo du da schreibst
Wenn du nen real mit nachfolgendem interger multiplizierst dann ist das Ergebnis immer real und nie integer.
Doku lesen!

Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

Matsch
Beiträge: 5452
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 743 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Matsch » 15.06.2023, 18:49

Vielen Dank für die nette Anmerkung, gibt' s die auch in deutsch?

[sprotte80]
Beiträge: 336
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von [sprotte80] » 15.06.2023, 20:28

Hi
Matsch hat geschrieben:
15.06.2023, 18:49
Vielen Dank für die nette Anmerkung, gibt' s die auch in deutsch?
"in deutsch" eher nicht, aber vielleicht "auf Deutsch". :lol:

Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

Antworten

Zurück zu „mediola“