HM-Skript: Zahl in einem String finden

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Benutzeravatar
Black
Beiträge: 5480
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: HM-Skript: Zahl in einem String finden

Beitrag von Black » 08.01.2019, 15:34

alternativ tclsh aufruf: tcl kann regex
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

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: HM-Skript: Zahl in einem String finden

Beitrag von dtp » 08.01.2019, 15:43

Jetzt habe ich einen Ansatz:

Code: Alles auswählen

string message = "Heute sind 78 Wolken am Himmel.";
string part; 

foreach(part, message.Split(" ")){
  if(part.ToInteger() == 0){WriteLine("keine Zahl");}
  else{WriteLine("Zahl");}
}
Das funktioniert zumindest schon mal für alle Zahlen außer der null. 8) Und natürlich geht's nicht, wenn kein Leerschritt vor und nach der Zahl existiert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: HM-Skript: Zahl in einem String finden

Beitrag von dtp » 09.01.2019, 12:31

Es scheint zumindest im Moment keine Lösung mit Bordmitteln der CCU zu geben, um aus einem beliebigen String eine Zahl zu identifizieren.

Dass "string.ToInteger()" den Wert 0 statt NaN liefert, wenn string kein Zahlenwert ist, halte ich aber für sehr ungeschickt. Vielleicht könnte man das mal ändern.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: HM-Skript: Zahl in einem String finden

Beitrag von jmaus » 09.01.2019, 14:34

dtp hat geschrieben:
09.01.2019, 12:31
Dass "string.ToInteger()" den Wert 0 statt NaN liefert, wenn string kein Zahlenwert ist, halte ich aber für sehr ungeschickt. Vielleicht könnte man das mal ändern.
Wenn du die Zeit zurückdrehen kannst an den Anfang der ReGaHss Entwicklung könnte man das vielleicht tun. So wird das nicht passieren. Die einzige Möglichkeit die ich sehe das rückwärtskomptibel zu halten wäre ToInteger() einen optionalen parameter zu verpassen in dem ein boolean dann gesetzt wird für true/false je nachdem ob die Konvertierung geklappt hat oder nicht. Aber auch das steht weit weit unten auf der Prioritätenliste, würde ich sagen :)
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: HM-Skript: Zahl in einem String finden

Beitrag von dtp » 09.01.2019, 14:41

Nutzt denn wirklich jemand die Info, dass string.ToInteger() den Wert 0 ergibt, wenn string kein Zahlenwert ist? Kann ich mir kaum vorstellen. Aber gut, es ist, wie es ist. Und so wichtig ist es in der Tat nicht.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“