SV Zeichenkette und Skript Hilfe
Moderator: Co-Administratoren
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: SV Zeichenkette und Skript Hilfe
Du hast leider die implizite Frage nach dem Typ der Systemvariablen nicht beantwortet.
Wenn Zeichenkette, dann ToString komplett weg lassen. Es ist ja schon string.
Wenn Zeichenkette, dann ToString komplett weg lassen. Es ist ja schon string.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: SV Zeichenkette und Skript Hilfe
Der Wert "245.06 kWh, 75.97 Euro" kann ja nur in einem String enthalten sein,
wenn er mit
ausgelesen wird. Das ToString(2) ändert an dem Inhalt nichts und ist überflüssig.
Wäre er in einer Werteliste, käme bei dieser Abfrage nur der Index heraus. ( 0 bis n).
bei Übergabe per HTTP werden Kommata als Trennzeichen zwischen Parametern benutzt.
Ich kann mir vorstellen, dass das in diesem Falle auch der Grund ist.
Probiere mal das Komma durch z.B. Gedankenstrich zu ersetzen (Replace) oder
den String durch Umkodieren (UriEncode) dann in einer URL verwenden zu können. :
wenn er mit
Code: Alles auswählen
string var1 = dom.GetObject("TR aktueller Monat").Value().ToString(2);
Wäre er in einer Werteliste, käme bei dieser Abfrage nur der Index heraus. ( 0 bis n).
bei Übergabe per HTTP werden Kommata als Trennzeichen zwischen Parametern benutzt.
Ich kann mir vorstellen, dass das in diesem Falle auch der Grund ist.
Probiere mal das Komma durch z.B. Gedankenstrich zu ersetzen (Replace) oder
den String durch Umkodieren (UriEncode) dann in einer URL verwenden zu können. :
Code: Alles auswählen
string var1 = "245.06 kWh, 75.97 Euro";
WriteLine(var1);
WriteLine(var1.Type());
WriteLine(var1.ToString(2));
string var1_Rpl = var1.Replace("," , " -");
WriteLine(var1_Rpl);
string var1_Uri = var1.UriEncode();
WriteLine(var1_Uri);
Gruß
Harry
Harry
-
- Beiträge: 252
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: SV Zeichenkette und Skript Hilfe
Hallo,
also wenn ich ToString weglasse ändert es leider nichts.
mit dem Replace erhalte ich den Wert "245.06" und mit dem
UriEncode den Euro Wert also "75.97 Euro"
das Merkwürdige über WriteLine erhalte ich es so wie Harry
es geschrieben hat einmal mit - und einmal mit ,
Naja egal hatte gedacht das ich mir es auf dem Display anzeigen
kann aber hab schon gesehen ist alles nicht so einfach.
Trotzdem Danke an alle.
Grüße Alex
also wenn ich ToString weglasse ändert es leider nichts.
mit dem Replace erhalte ich den Wert "245.06" und mit dem
UriEncode den Euro Wert also "75.97 Euro"
das Merkwürdige über WriteLine erhalte ich es so wie Harry
es geschrieben hat einmal mit - und einmal mit ,
Code: Alles auswählen
245.06 kWh, 75.97 Euro
string
245.06 kWh, 75.97 Euro
245.06 kWh - 75.97 Euro
245%2E06%20kWh%2C%2075%2E97%20Euro
kann aber hab schon gesehen ist alles nicht so einfach.
Trotzdem Danke an alle.
Grüße Alex
- Baxxy
- Beiträge: 10835
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 608 Mal
- Danksagung erhalten: 2228 Mal
Re: SV Zeichenkette und Skript Hilfe
Das der String (egal wie konvertiert) länger als die 20 möglichen Zeichen einer Zeile des LCD2004 ist, ist aber schon aufgefallen, oder?
Wie sieht's denn aus wenn einfach mal der gesamte String auf max 20 Zeichen reduziert wird? "Euro" weglassen z.B.
Wie sieht's denn aus wenn einfach mal der gesamte String auf max 20 Zeichen reduziert wird? "Euro" weglassen z.B.
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: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: SV Zeichenkette und Skript Hilfe
Wenn es da ein Limit gibt, muss man das berücksichtigen.
Das ist aber auch ein eigenartiges Verhalten:
Ich hätte dann ein stumpfes Abschneiden - vorne oder hinten - erwartet.Alexxx2005 hat geschrieben: ↑29.07.2022, 23:23mit dem Replace erhalte ich den Wert "245.06" und mit dem
UriEncode den Euro Wert also "75.97 Euro"
Evtl. einfach mal mit "123456789012345678901234567890" testen was passiert.
Gruß
Harry
Harry
-
- Beiträge: 252
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: SV Zeichenkette und Skript Hilfe
Also dasmit den 20 Zeichen ist korrekt allerdings fängt er dann wieder
in der nächsten Zeile an, weggelassen wird nichts.
Problem war jetzt bei
das sollte
heißen und dann noch den Replace von Komma nach Minus
somit ergibt sich folgendes Skript :
Was jetzt noch ganz Toll wäre das Euro zu € "replacen" weß jemand hier die
aktuelle UTF8 Codierung , habe mit
probiert aber hier kommt nur ein "ß"
Grüße Alex
in der nächsten Zeile an, weggelassen wird nichts.
Problem war jetzt bei
Code: Alles auswählen
("wget -q -O /dev/null '"#url#"'");
das sollte
Code: Alles auswählen
("wget -q -O /dev/null "#url);
somit ergibt sich folgendes Skript :
Code: Alles auswählen
string url = "http://192.168.86.51/control?cmd=LCDCMD,clear";
dom.GetObject("CUxD.CUX2801003:5.CMD_EXEC").State("wget -q -O /dev/null "#url);
string var1 = dom.GetObject("TR Verbrauch heute").Value();
string var2 = var1.Replace("," , "");
string url = "http://192.168.86.51/control?cmd=LCD,2,1,'"#var2#"' ";
dom.GetObject("CUxD.CUX2801003:5.CMD_EXEC").State("wget -q -O /dev/null "#url);
aktuelle UTF8 Codierung , habe mit
Code: Alles auswählen
%E2 %82 %AC
Grüße Alex
- Baxxy
- Beiträge: 10835
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 608 Mal
- Danksagung erhalten: 2228 Mal
Re: SV Zeichenkette und Skript Hilfe
Ich glaube die gängigen LCD2004 haben gar kein € - Symbol in ihrem Zeichensatz.
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: 252
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: SV Zeichenkette und Skript Hilfe
Jahaben sie nicht, ich habe es nun auf EUR begrenzt nun
komme ich mit den Zeichensätzen hin.
Bedanke mich nochmals an alle die mir geholfen haben,
Danke auch an Harry für seine tollen Beispiele so konnte
ich das ganze verstehen und mein Stromanzeige Display
verwirklichen, jetzt muss nur noch ein Gehäuse gedruckt
werden , dann ist es komplett.
Grüße Alex
komme ich mit den Zeichensätzen hin.
Bedanke mich nochmals an alle die mir geholfen haben,
Danke auch an Harry für seine tollen Beispiele so konnte
ich das ganze verstehen und mein Stromanzeige Display
verwirklichen, jetzt muss nur noch ein Gehäuse gedruckt
werden , dann ist es komplett.
Grüße Alex
- Black
- Beiträge: 5482
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: SV Zeichenkette und Skript Hilfe
Die LCDs haben doch eine ANzahl von Zeichen im Ram, die wo du die Pixels selber setzen kannst. Müssten die Asci Codes 0-7 sein.
deren Pixelmuster kannst du ja selber laden.
Link zum Datenblatt eines 20x4 Displays
dann musst du nur das Euro Zeichen gegen den char 0-7 substituieren.
Black
deren Pixelmuster kannst du ja selber laden.
Link zum Datenblatt eines 20x4 Displays
dann musst du nur das Euro Zeichen gegen den char 0-7 substituieren.
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 12116
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 849 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: SV Zeichenkette und Skript Hilfe
Die
Ist für den HD44780.
lassen sich sogar bequem online erzeugen: https://omerk.github.io/lcdchargen/
Ist für den HD44780.
Sollte aber kompatibel auch zum KS0073 sein.
- Dateianhänge
-
- eur.png (15.04 KiB) 310 mal betrachtet