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

Analoger Eingang-Skript-Systemvariable

Beitrag von VolGra » 15.06.2023, 11:13

Hallo in die Runde,
Ich habe den analogen Eingang des Gerätes JACK000005:3, welcher mir eine Eingangsspannung von sagen wir mal 41,2 ausspuckt. Diesen Wert brauche ich in einer Systemvariablen, hier namens “WWTempIst“ mit Zahl 0 bis 100. Das Temp steht für Temperatur. Damit habe ich in einem CCU-Programm mit

WENN Gerät = “WW-Temp_Ist” (der obige Jack0005:3) im Wertebereich 0 bis 100 sich bei Aktualisierung (oder Änderung) ändert, DANN folgendes Skript:

Code: Alles auswählen

real Wert1 = dom.GetObject("CCU-Jack.JACK000005:3.VALUE").Value();		
real faktor1 = dom.GetObject('Faktor1').State() * 1; 	
real Ausgabe1 = (Wert1 * faktor1) / 1;
var x = dom.GetObject('WWTempIst').State(Ausgabe1);
Angezeigt wird mir von der Sysvar stur eine 0,00. Was mache ich nur verkehrt?
Das Skript habe ich aus einer anderen, laufenden Anwendung umgeschrieben. Sollte dies etwa bei einem vom CCU-Jack angelegten virtuellen Gerät nicht funktionieren?! Die beiden Jack-Geräte kann ich nämlich auch nicht direkt nach AIO Remote exportieren bzw. Importieren. Dann wäre die Anbindung meiner MQTT-Heizung nutzlos…
Vielen Dank im Voraus

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

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Baxxy » 15.06.2023, 11:44

WriteLines nach jeder Aktion helfen da ungemein.

Der erste Fehler dürfte der Datenpunktname sein (1.Zeile).
Mir ist kein Datenpunkt bekannt der sich "VALUE" nennt.
Kontrolliere z.B. im Jack Navigator ob der DP wirklich so heißt.

AF-Mobil
Beiträge: 322
Registriert: 25.11.2016, 19:52
Hat sich bedankt: 4 Mal
Danksagung erhalten: 20 Mal

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von AF-Mobil » 15.06.2023, 13:06

Hallo, vielleicht nur ein versehen, aber du schreibst:
VolGra hat geschrieben:
15.06.2023, 11:13
WENN Gerät = “WW-Temp_Ist” (der obige Jack0005:3)
und dann:
VolGra hat geschrieben:
15.06.2023, 11:13
real Wert1 = dom.GetObject("CCU-Jack.JACK000005:3.VALUE").Value();
Gruss AF

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, 14:39

Hallo AF, hallo Baxxy,
erst mal vielen Dank für Eure Antworten. Mangels Kenntnissen zu Skripts (nur von einem anderen Kanal übertragen...) bin ich mir nicht sicher, was ihr meint:
von AF-Mobil » 15.06.2023, 13:06
Hallo, vielleicht nur ein versehen, aber du schreibst:
Die Gerätebezeichnung laut gerätemanager/Interface/Kategorie ist "CCU-Jack",
Der Name des Anschlusses ist "WW-Temp_Ist", die Seriennummer JACK000005:3.

Baxxy:
Der erste Fehler dürfte der Datenpunktname sein (1.Zeile).
Von CCU-Geräten ist mir bekannt, eben diese Angaben einzutragen. Wie müsste denn dann das Skript aussehen? Das Gerät hat folgende Daten:
Einstellungen.jpg
.
Sorry, bin mit Skripts nicht sehr bewandert. Und mit virtuellen Geräten habe ich erst bei diesem Projekt was zu tun. Daher nochmals danke für Eure Hilfe
Volker

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

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Baxxy » 15.06.2023, 15:31

Du solltest dich doch mal mittels Jack-Navigator zu deinem Gerät durchhangeln. :roll:

Ich mache es dir einfacher:
Gib im Jack Navigator bei Adresse folgendes ein...

Code: Alles auswählen

/virtdev/JACK000005/3
... und klicke "übernehmen".

Dann siehst du rechts die Datenpunkte (unter Verweise).
Klickst du auf einen Datenpunkt siehst du dessen Wert.
Da du von "analogen Eingang" sprachst wird es vermutlich "VOLTAGE" sein.

Anhand meiner Spekulation dann das Script:

Code: Alles auswählen

real Wert1 = dom.GetObject("CCU-Jack.JACK000000:1.VOLTAGE").Value();
WriteLine("Wert1 = "# Wert1);
real faktor1 = dom.GetObject('SV_Zahl').Value() * 1;
WriteLine("Faktor1 = "# faktor1);
real Ausgabe1 = (Wert1 * faktor1) / 1;
WriteLine("Ausgabe1 = "# Ausgabe1);
dom.GetObject('WWTempIst').State(Ausgabe1);
Deine Berechnungen ergeben für mich keinen Sinn, speziell irgendwas mit 1 zu multiplizieren oder zu dividieren.
Aber die Baustelle lasse ich Dir. :wink:

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, 16:54

Hallo Baxxy
von Baxxy » 15.06.2023, 15:31
Du solltest dich doch mal mittels Jack-Navigator zu deinem Gerät durchhangeln. :roll:
Oh Mann, natürlich... :oops: Mit Voltage hast Du recht:

Demzufolge dann das Skript:

Code: Alles auswählen

real Wert1 = dom.GetObject("CCU-Jack.JACK000005:3.VOLTAGE").Value();
WriteLine("Wert1 = "# Wert1);
real faktor1 = dom.GetObject('SV_Zahl').Value() * 1;
WriteLine("Faktor1 = "# faktor1);
real Ausgabe1 = (Wert1 * faktor1) / 1;
WriteLine("Ausgabe1 = "# Ausgabe1);
dom.GetObject('WWTempIst').State(Ausgabe1);

Arbeitet dennoch nicht. Faktor1 wird übernommen. Allerdings steht die sysvar "WWTempIst" immer nch auf heute Vormittag:
Bild
Offensichtlich wird also das Prog nicht ausgeführt:
Bild
Programm.jpg
Weder nach Auslösung, nach Aktualisierung oder nach Änderung. Auch nicht nach 1s Wartezeit. Leider erkenne ich auch keine Fehler im skript, wobei ich mit WriteLine nichts anfangen kann- bin nun mal blutiger Skript-Anfänger. Mit dem unnützen Rechenweg *1/1 werde ich mich erst nach dem Laufen des Skripts bzw Programms beschäftigen-das kriege ich dann hin.
Danke im Voraus für weitere Hilfe-Volker
Dateianhänge
Sysvar.jpg
Sysvar.jpg (24.24 KiB) 566 mal betrachtet
Einstellungen Jack.jpg

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

Re: Analoger Eingang-Skript-Systemvariable

Beitrag von Baxxy » 15.06.2023, 17:04

Auf die schnelle... Du hast ein "WebUI-Programm-Logik-Verständnis-Problem". :wink:
(zumindest im gezeigten Programm-Screenshot)

Stelle auf "Aktualisierung" um und nimm einfach größer als 0.0 oder sowas.

Das Script kannst du mal im "Script testen" Fenster ausführen, dann siehst du die Ausgaben der WriteLines.

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:27

Hallo Baxxy,
kann ich zumindest bei Skripts nicht verneinen :cry:
Aktualisierung steht es ja, außerdem eben noch mal getestet. Und das Prog ist ja wirklich simpel
Und Skript natürlich ebenfalls schon getestet - keine Fehlermeldungen. Aber diese Meldung kommt auch ohne writelines, wenn recht grobe Fehler drin sind..
Hast Du noch eine Idee? Ich möchte sehr sehr ungern an dieser Stelle das Projekt begraben :?
Volker


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:38

Baxxy hat geschrieben:
15.06.2023, 17:04
Stelle auf "Aktualisierung" um und nimm einfach größer als 0.0 oder sowas.
Das Script kannst du mal im "Script testen" Fenster ausführen, dann siehst du die Ausgaben der WriteLines.
Nebenschauplätze sind zum Einen die Systemvariable "WWTempIst": Das ist eine Zahl, Wertebereich 0 bis 100. Kanns also eigentlich nicht sein.
Zum anderen könnte der Berechnungsmüll vielleicht eine Rolle spielen? Oder das skript hakt eben doch noch? Wäre toll, Wenn Du den Müll mal rausnimmst. Und ich lerne daraus hoffentlich wieder was...
Danke im Voraus-Volker

Antworten

Zurück zu „mediola“