Einfaches umrechnen von Wh auf KW

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

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: Einfaches umrechnen von Wh auf KW

Beitrag von Matsch » 08.12.2023, 12:12

Es gibt auch die Methode .ToFloat(), wurde aber nicht angewendet.

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

Re: Einfaches umrechnen von Wh auf KW

Beitrag von Baxxy » 08.12.2023, 12:26

Matsch hat geschrieben:
08.12.2023, 11:45

Code: Alles auswählen

x = x/1000;    ! ergibt eine Ganzzahl als Ergebnis
x = x/1000.0; ! ergibt eine Gleitkommazahl als Ergebnis
Jedenfalls, wenn x eine real-Zahl und kein String ist.
Bist du sicher mit "x = x/1000; ! ergibt eine Ganzzahl als Ergebnis" ? :wink:
Test:

Code: Alles auswählen

real x = 1234.567;
WriteLine(x);
WriteLine(x.VarType());
x = x/1000;
WriteLine(x);
WriteLine(x.VarType());
Ergebnis:

Code: Alles auswählen

1234.567000
3
1.234567
3

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: Einfaches umrechnen von Wh auf KW

Beitrag von Matsch » 08.12.2023, 12:34

Dann war's genau andersrum? Wenn x eine integer ist?
Jedenfalls bin ich schon wiederholt über diese implizite Typkonvertierung gestolpert, so dass ich immer eine real-Konstante verwende, damit das nicht passiert.

Benutzeravatar
Roland M.
Beiträge: 9858
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 255 Mal
Danksagung erhalten: 1406 Mal

Re: Einfaches umrechnen von Wh auf KW

Beitrag von Roland M. » 08.12.2023, 12:40

Matsch hat geschrieben:
08.12.2023, 12:34
Dann war's genau andersrum? Wenn x eine integer ist?
Genau!

integer x = 1000;
x = x / 1000.0;

x bleibt immer noch integer.


Und der ultimative Schrecken aller Programmierer, in der HM-Unlogik ganz easy:

x = 1.0 + "Hello world" / 0;

:mrgreen:


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

frd030
Beiträge: 3655
Registriert: 14.07.2019, 20:49
System: CCU
Hat sich bedankt: 853 Mal
Danksagung erhalten: 552 Mal

Re: Einfaches umrechnen von Wh auf KW

Beitrag von frd030 » 08.12.2023, 12:51

Roland M. hat geschrieben:
08.12.2023, 12:40
x = 1.0 + "Hello world" / 0;
Ist das so ähnlich wie Pi x Daumen im Quadrat / Fensterkreuz? SNCR :mrgreen:

JanReum
Beiträge: 8
Registriert: 07.12.2023, 13:35
System: CCU und Access Point
Hat sich bedankt: 2 Mal

Re: Einfaches umrechnen von Wh auf KW

Beitrag von JanReum » 08.12.2023, 13:43

Roland M. hat geschrieben:
08.12.2023, 12:08
Matsch hat geschrieben:
08.12.2023, 11:45
Hmm, du willst einen String dividieren? Was soll da rauskommen?
Mit ein bisschen guten Willen und HM-Unlogik eine Realzahl! :D

Code: Alles auswählen

string x = "1000";
x = 0.0 + x;     
x = x / 1000.0;
WriteLine(x);
WriteLine(x.Type());

Roland
Danke euch dreien für die Hilfe. ich möchte einfach, dass die Zahl 457123 (Wh) so dargestellt wird 457.123 (kWh).
Habe es jetzt wie Roland gezeigt hat geschieben. Jetzt hab ich nur zu viele Nachkommastellen 457.123000 . Kann man da noch was machen?
Danke im Voraus und Sorry. Bis auf ein bißchen Python und arduinobastelei ist bei mir nicht mehr viel Programmierbackground vorhanden.

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: Einfaches umrechnen von Wh auf KW

Beitrag von Matsch » 08.12.2023, 14:03

Mit deinem Anfangscode:

Code: Alles auswählen

real P2 = (v.StrValueByIndex(",",31)).ToFloat();
P2 = P2 /1000.0;
WriteLine("Stromverbrauch Heizung:" # P2);

Den Rest wegen der nachstehenden Nullen verstehe ich nicht, das ist ja keine Frage des Zahlenformats, sondern der formatierten Ausgabe. WriteLine ist eine Testausgabe. Wie wolltest du denn den Wert zur endgültigen Anzeige bringen?

Fonzo
Beiträge: 6823
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 499 Mal

Re: Einfaches umrechnen von Wh auf KW

Beitrag von Fonzo » 08.12.2023, 14:16

JanReum hat geschrieben:
08.12.2023, 13:43
ich möchte einfach, dass die Zahl 457123 (Wh) so dargestellt wird 457.123 (kWh).
Wenn Du mit der Darstellung die Anzeige in NEO selber meinst, dann ist es an sich auch zumindest einfacher, das gleich mit Javascript zu machen oder sogar gleich die Daten komplett mit Javascript abzurufen und das dann in eine Variable des NEO Servers der HmIP-CCU3 abzulegen.

Ein Beispielscript zur Darstellung von Trennzeichen findest Du unter Trennzeichen in NEO darstellen.

In so einem Fall brauchst Du nämlich keine Umwege und zusätzlich CUxD und musst Dich auch nicht mit der Homematic Skriptsprache auseinander setzen, die deutlich weniger ermöglicht als Javascript.
Zuletzt geändert von Fonzo am 08.12.2023, 14:17, insgesamt 1-mal geändert.

MichaelN
Beiträge: 9771
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 707 Mal
Danksagung erhalten: 1647 Mal

Re: Einfaches umrechnen von Wh auf KW

Beitrag von MichaelN » 08.12.2023, 14:17

Wieder in einen string umwandeln, mit 2 Nachkommastellen.
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 +++

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

Re: Einfaches umrechnen von Wh auf KW

Beitrag von Baxxy » 08.12.2023, 14:22

Wenn die Werte in SysVars Typ: Zahl landen sind die Nachkommastellen irrelevant.
Die WebUI selbst zeigt i.d.R bei solchen SysVars nur 2 Nachkommastellen an, auch wenn es intern mehr gibt.

Antworten

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