Kennt Ihr das Verhalten gar nicht?
Programmnamen nach dem Editieren um Ziffern ergänzt
Moderatoren: jmaus, Co-Administratoren
-
- Beiträge: 169
- Registriert: 16.04.2019, 15:15
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 10 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Viele Grüße
Stefan
Stefan
- Baxxy
- Beiträge: 10782
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 604 Mal
- Danksagung erhalten: 2205 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Doch schon. Aber wenn's hochkommt hatte ich das vielleicht 3-4 mal im letzten Jahr.
Grüße
Baxxy
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 169
- Registriert: 16.04.2019, 15:15
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 10 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Kommt sicher auf die Häufigkeit der Änderungen an. Ich programmiere gerade meine Sonnenschutzsteuerung für die Markisen und Rollladen in Abhängigkeit von diversen Sensoren. Da bastelt man halt häufig an den Scripten.
Viele Grüße
Stefan
Stefan
-
- Beiträge: 169
- Registriert: 16.04.2019, 15:15
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 10 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
OK. Nach mehreren Tagen programmieren habe ich den Fehler gefunden. Wie üblich sitzt er vor dem Rechner.
Man darf den Editormodus der Programme nur mit "Abbrechen" oder "OK" verlassen. Da ich gelegentlich den aktuellen Status von Systemvariablen nachsehen oder einfach ein anderes Programm öffnen wollte, klickt man dann schon mal einfach in die obere Menüleiste. Das ist genau das Problem, denn dann wird das Programm anscheinend nicht zurückgeschrieben. Hält man sich an "Abbrechen" oder "OK", gibt es auch kein Problem.
Der beste Weg Scripte zu schreiben und zu testen ist aber in jedem Fall der Script Developer. Dann einfach das getestete Script hineinkopieren... fertig.
Ist schon mal jemand aufgefallen, dass:
real Faktor = 2.0;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
real Faktor = 2;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
unterschiedliche Werte ergibt? Homematic Script ist aber auch ein Mimöschen.
Grüße Stefan
Man darf den Editormodus der Programme nur mit "Abbrechen" oder "OK" verlassen. Da ich gelegentlich den aktuellen Status von Systemvariablen nachsehen oder einfach ein anderes Programm öffnen wollte, klickt man dann schon mal einfach in die obere Menüleiste. Das ist genau das Problem, denn dann wird das Programm anscheinend nicht zurückgeschrieben. Hält man sich an "Abbrechen" oder "OK", gibt es auch kein Problem.
Der beste Weg Scripte zu schreiben und zu testen ist aber in jedem Fall der Script Developer. Dann einfach das getestete Script hineinkopieren... fertig.
Ist schon mal jemand aufgefallen, dass:
real Faktor = 2.0;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
real Faktor = 2;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
unterschiedliche Werte ergibt? Homematic Script ist aber auch ein Mimöschen.
Grüße Stefan
Viele Grüße
Stefan
Stefan
-
- Beiträge: 14149
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Wie ich schon geschrieben habe, beim Abbrechen wird die Bearbeitungskopie gelöscht und nicht in die Datenbank zurückgeschrieben. Darum konnte das auch nicht die Ursache sein. Ebenso bei OK, da werden die Änderungen zurückgeschrieben. Verlässt man das Editorfenster auf eine andere Art, wird beim weiteren Öffnen eben eine weitere Kopie des Programss geöffnet. Dieses erhält dann eine Ziffer. War schon immer so. Der Bug hat schon immer zwei Beine gehabt. Alle vorherigen diesbezüglichen Bugreports kamen zu dem gleichen Ergebnis.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 746
- Registriert: 08.02.2017, 11:08
- Hat sich bedankt: 32 Mal
- Danksagung erhalten: 75 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Ich würde vorschlagen, dafür einen separaten Thread aufzumachen. Denn in diesem Thread geht das bestimmt unter.Stefan0815 hat geschrieben: ↑24.04.2020, 19:00...
Ist schon mal jemand aufgefallen, dass:
real Faktor = 2.0;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
real Faktor = 2;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
unterschiedliche Werte ergibt? Homematic Script ist aber auch ein Mimöschen.
Grüße Stefan
-
- Beiträge: 14149
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Weil im ersten Beispiel die Real als Real behandelt wird und im zweiten Fall als Integer, weil der erste Therm eine Integerzahl ist (auch wenn Du sie als real deklariert hast). Die CCU rechnet von rechts nach links und beachtet keine mathematischen Regeln wie Punkt vor Strichrechnung. Ist auch so dokumentiert und bedarf deswegen auch nicht unbedingt eines separaten Threads.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- jmaus
- Beiträge: 9846
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Dafür brauch man aber auch keinen extra Thread. Diese "Limitation" bzw. eigenheit der Homematic Skriptsprache ist schon länger bekannt und das liegt an der Reihenfolge der impliziten Datentypwandlungen die leider ursprünglich von den Entwicklern der Skriptsprache statt von rechts nach links von links nach rechts gewählt wurde wie das eigentlich in anderen Programmiersprachen üblich ist. So so ist "der schuldige" in dem oberen Beispiel die ZeileHütte hat geschrieben: ↑04.05.2020, 18:10Ich würde vorschlagen, dafür einen separaten Thread aufzumachen. Denn in diesem Thread geht das bestimmt unter.Stefan0815 hat geschrieben: ↑24.04.2020, 19:00...
Ist schon mal jemand aufgefallen, dass:
real Faktor = 2.0;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
real Faktor = 2;
real x = 10.10;
real z = 20.20;
real y = x+(Faktor*z);
WriteLine(y);
unterschiedliche Werte ergibt? Homematic Script ist aber auch ein Mimöschen.
Grüße Stefan
Code: Alles auswählen
real y = x+(Faktor*z);
Code: Alles auswählen
real y = x+(z*Faktor);
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 169
- Registriert: 16.04.2019, 15:15
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 10 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
...woran das liegt, war mir schon klar. Als "normaler" Softwareentwickler hat man sowas allerdings selten auf dem Schirm. Ich hatte gerade ein Script in der Mache, was den gewichteten Mittelwert, Varianz und Standardabweichung einer Datenreihe berechnet. Überschlägig (rund 200 Werte) sehen die Daten dann gut aus. Zufällig habe ich das dann in Excel übernommen und von Hand gerechnet. Erst dann fällt diese kleine Unzulänglichkeit auf. Wenn bei expliziter Variablendeklaration eine Typumwandlung erfolgt, ist das schon etwas schräg. Also alles nur noch als var und AUFPASSEN.
Grüße
Stefan
Grüße
Stefan
Viele Grüße
Stefan
Stefan
-
- Beiträge: 14149
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Programmnamen nach dem Editieren um Ziffern ergänzt
Damit verhinderst Du auch keine Typenwandlung, denn diese geschieht auf Basis des Rechenwertes. Ergibt dieses eine Ganzzahl, wird automatisch mit Integer gerechnet. Kommt es auf Genauigkeit an, ist der Wert eben vor der Weiterverarbeitung mit 1.0 zu multiplizieren.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch