Ausgabewert vom Skript, komma hinzufügen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Commander1971
Beiträge: 54
Registriert: 25.07.2019, 11:36
Danksagung erhalten: 4 Mal

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Commander1971 » 24.11.2023, 13:12

Matsch hat geschrieben:
24.11.2023, 13:06
Nicht? 🤣
jetzt bin ich völlig raus, sorry.

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

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Matsch » 24.11.2023, 13:14

Entweder soll die Kommazahl letztlich auch in der SV stehen:

Code: Alles auswählen

tst1 = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();
! Schreiben in Systemvariable formatiert (lGetOut ist ein Sting)
dom.GetObject('E3DC_Haus').State(tst1);
tst1 = tst1.ToFloat()/10.0;
! Ausgabe
WriteLine("E3DC_Haus: " + tst1); 
Oder nur so ausgegeben werden

Code: Alles auswählen

tst1 = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();
! Schreiben in Systemvariable formatiert (lGetOut ist ein Sting)
dom.GetObject('E3DC_Haus').State(tst1);
! Ausgabe
WriteLine("E3DC_Haus: " + tst1.ToFloat()/10.0); 
Zuletzt geändert von Matsch am 24.11.2023, 13:19, insgesamt 2-mal geändert.

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

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Matsch » 24.11.2023, 13:15

Commander1971 hat geschrieben:
24.11.2023, 13:12
jetzt bin ich völlig raus, sorry.
Commander1971 hat geschrieben:
24.11.2023, 12:53
Also kann ich Sie weglassen

Commander1971
Beiträge: 54
Registriert: 25.07.2019, 11:36
Danksagung erhalten: 4 Mal

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Commander1971 » 24.11.2023, 13:19

Matsch hat geschrieben:
24.11.2023, 13:14
Entweder soll die Kommazahl letztlich auch in der SV stehen:

Code: Alles auswählen

tst1 = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();
! Schreiben in Systemvariable formatiert (lGetOut ist ein Sting)
dom.GetObject('E3DC_Haus').State(tst1);
tst1 = (tst1.ToFloat())/10.0;
! Ausgabe
WriteLine("E3DC_Haus: " + tst1); 
Oder nur so ausgegeben werden

Code: Alles auswählen

tst1 = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();
! Schreiben in Systemvariable formatiert (lGetOut ist ein Sting)
dom.GetObject('E3DC_Haus').State(tst1);
! Ausgabe
WriteLine("E3DC_Haus: " + (tst1.ToFloat())/10.0); 
Danke,
sollte schon in der SV stehen, da ändert sich aber der Wert nicht mit der Kommastelle, nur im Skript wird es richtig angezeigt.

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

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Matsch » 24.11.2023, 13:23

sollte schon in der SV stehen, da ändert sich aber der Wert nicht mit der Kommastelle, nur im Skript wird es richtig angezeigt.
Tut es, wenn du die Division vor der Ausgabe an die SV anordnest. Ich kenne deine Intentionen nicht. War jetzt möglicherweise mein Fehler.

Code: Alles auswählen

tst1 = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();
! Schreiben in Systemvariable formatiert (lGetOut ist ein Sting)
tst1 = tst1.ToFloat()/10.0;
dom.GetObject('E3DC_Haus').State(tst1);
! Ausgabe
WriteLine("E3DC_Haus: " + tst1); 
Ich habe übrigens je noch ein Klammerpaar aus dem Code entfernt, es war hier nicht erforderlich. Nur habe ich mir angewöhnt, alles zu klammern, um nicht in die Interpretationsfalle zu laufen.

PS: Habe vergessen zu erklären: Wahrscheinlich ist der ausgelesene Wert, den du in tst1 einliest, ein integer-Wert. Dadurch ergibt auch die Division als Ergebnis eine Ganzzahl, es fehlt die Kommastelle. Damit das funktioniert, muß man also tst1 vor der Operation in eine real-Zahl umwandeln, dann ist auch das Ergebnis eine Kommazahl.

Commander1971
Beiträge: 54
Registriert: 25.07.2019, 11:36
Danksagung erhalten: 4 Mal

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Commander1971 » 24.11.2023, 13:30

Es soll mit der Kommaverschiebung auch so in der SV stehen, macht es aber nicht, egal wo ich es einsetze.
Ich habe das Skript nur von jemanden übernommen und nur die Zeile mit dem Modbus verändert und mir dann eine SV angelegt, wo es reingeschrieben wird.

Commander1971
Beiträge: 54
Registriert: 25.07.2019, 11:36
Danksagung erhalten: 4 Mal

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Commander1971 » 24.11.2023, 13:32

Matsch hat geschrieben:
24.11.2023, 13:23
sollte schon in der SV stehen, da ändert sich aber der Wert nicht mit der Kommastelle, nur im Skript wird es richtig angezeigt.
Tut es, wenn du die Division vor der Ausgabe an die SV anordnest. Ich kenne deine Intentionen nicht. War jetzt möglicherweise mein Fehler.

Code: Alles auswählen

tst1 = dom.GetObject("CUxD.CUX2801001:16.CMD_RETS").State();
! Schreiben in Systemvariable formatiert (lGetOut ist ein Sting)
tst1 = tst1.ToFloat()/10.0;
dom.GetObject('E3DC_Haus').State(tst1);
! Ausgabe
WriteLine("E3DC_Haus: " + tst1); 
Ich habe übrigens je noch ein Klammerpaar aus dem Code entfernt, es war hier nicht erforderlich. Nur habe ich mir angewöhnt, alles zu klammern, um nicht in die Interpretationsfalle zu laufen.

PS: Habe vergessen zu erklären: Wahrscheinlich ist der ausgelesene Wert, den du in tst1 einliest, ein integer-Wert. Dadurch ergibt auch die Division als Ergebnis eine Ganzzahl, es fehlt die Kommastelle. Damit das funktioniert, muß man also tst1 vor der Operation in eine real-Zahl umwandeln, dann ist auch das Ergebnis eine Kommazahl.
Die Zahlenfolge stimmt beim auslesen nur ohne Komma halt und wie wandle ich das um?

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

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Matsch » 24.11.2023, 13:36

Der von dir nochmal gezeigte Code ist korrekt, in der SV steht dann die Kommazahl drin.

Einfach mal testen:

Code: Alles auswählen

WriteLine(dom.GetObject("E3DC_Haus").Value()); 

Commander1971
Beiträge: 54
Registriert: 25.07.2019, 11:36
Danksagung erhalten: 4 Mal

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Commander1971 » 24.11.2023, 13:39

Matsch hat geschrieben:
24.11.2023, 13:36
Der von dir nochmal gezeigte Code ist korrekt, in der SV steht dann die Kommazahl drin.

Einfach mal testen:

Code: Alles auswählen

WriteLine(dom.GetObject("E3DC_Haus").Value()); 
Jetzt passt er, ganz lieben Dank für deine Hilfe. :D

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

Re: Ausgabewert vom Skript, komma hinzufügen

Beitrag von Matsch » 24.11.2023, 13:44

Solltest du in Zukunft wiederholt Scripts benutzen wollen/müssen, dann wirst du wohl oder übel dich durch die Doku durchfitzen müssen. Das Forum wird dir nicht permanent deine gewünschten Scripts auf den Silberteller legen wollen.
Zuletzt geändert von Matsch am 24.11.2023, 14:09, insgesamt 1-mal geändert.

Antworten

Zurück zu „HomeMatic allgemein“