NEU! HTTP-/REST-API jetzt auch in der Rolle des TWS als HTTP-Server
Viele Details dazu hier im Forum
Upgrade: Digest Access Authentication im Subsystem HTTP-/REST-API Client
Upgrade: 361 neue Icons & kompletter Refresh aller Icons für VISU und Admin-UI
Upgrade: Dekodierung für sieben weitere DPT im Busmonitor
Upgrade: Verbesserung im Logik Manager bei Modul "SendExplicit"
Upgrade: Verbesserte und erweiterte Benutzerverwaltung bei "Passwort vergessen" der Elab ID
Jetzt in der Insider Version 8 zur 4.5 - für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki
Es geht los: Erste Doku zu Logik
Forumsregeln
- Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
- Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
- Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
- Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
-
- Reactions:
- Beiträge: 3907
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1276 Mal
- Danksagung erhalten: 2220 Mal
Es geht los: Erste Doku zu Logik
Nachdem ich unlängst ein wenig in Logiken eingetaucht bin, hab ich gleich auch mit der Doku für die KB begonnen!
Der Anfang ist damit gemacht, die ersten Kapitel zur Logik sind online und werden bald weiter wachsen!
Wie immer: Feedback highly welcome!
LG Robert
4.6 Logikeditor
4.6.1 Einleitung
4.6.2 Beschreibung der wichtigsten Basis-Logikbausteine
4.6.3 Mehrere Logikbausteine verknüpfen
4.6.4 Custom-Logikbausteine
4.6.5 Verwendung von Standard Logikbausteinen in Custom-Logiken
4.6.6 Beispiele für Custom Logikbausteine
4.6.6.1 Custom-Logik: Sensorauswertung mittels Polynomfunktionen
4.6.6.2 Custom-Logik: Einfache Solarsteuerung mit 3-Wege-Ventil
Der Anfang ist damit gemacht, die ersten Kapitel zur Logik sind online und werden bald weiter wachsen!
Wie immer: Feedback highly welcome!
LG Robert
4.6 Logikeditor
4.6.1 Einleitung
4.6.2 Beschreibung der wichtigsten Basis-Logikbausteine
4.6.3 Mehrere Logikbausteine verknüpfen
4.6.4 Custom-Logikbausteine
4.6.5 Verwendung von Standard Logikbausteinen in Custom-Logiken
4.6.6 Beispiele für Custom Logikbausteine
4.6.6.1 Custom-Logik: Sensorauswertung mittels Polynomfunktionen
4.6.6.2 Custom-Logik: Einfache Solarsteuerung mit 3-Wege-Ventil
Zuletzt geändert von Robert_Mini am Do Jun 13, 2019 7:36 am, insgesamt 3-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
-
- Reactions:
- Beiträge: 428
- Registriert: Mo Okt 15, 2018 9:24 pm
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 208 Mal
Hallo. Bei der Polynomfunktion wäre es hilfreich, wenn man Infos hätte, was man machen soll, wenn die eigene Funkton von der idealen Form a + xa1 + a2x2 + a3x3 ... abweicht.
Will sagen: was mache ich, wenn ich z.B. die Formel P0=P/(1-h/44330) hoch 5.255 eingeben möchte ...
Gruß
Stephan
Will sagen: was mache ich, wenn ich z.B. die Formel P0=P/(1-h/44330) hoch 5.255 eingeben möchte ...
Gruß
Stephan
Zuletzt geändert von 773H am Fr Jun 07, 2019 9:33 pm, insgesamt 1-mal geändert.
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem
-
- Reactions:
- Beiträge: 2697
- Registriert: Sa Sep 15, 2018 10:26 am
- Wohnort: Kerpen
- Hat sich bedankt: 1016 Mal
- Danksagung erhalten: 810 Mal
Hi Robert, prüf bitte mal den ersten Link.
Gruß
jens
Gruß
jens
timberwolf168 | (2600er) | VPN offen | Reboot nach Vereinbarung |
timberwolf1699 | (3500XL) | VPN offen | Reboot jederzeit |
wiregate1250 |
-
- Reactions:
- Beiträge: 3907
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1276 Mal
- Danksagung erhalten: 2220 Mal
Einleitung gibt’s noch nicht...
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
-
- Reactions:
- Beiträge: 2697
- Registriert: Sa Sep 15, 2018 10:26 am
- Wohnort: Kerpen
- Hat sich bedankt: 1016 Mal
- Danksagung erhalten: 810 Mal
Ach soooooooo 

timberwolf168 | (2600er) | VPN offen | Reboot nach Vereinbarung |
timberwolf1699 | (3500XL) | VPN offen | Reboot jederzeit |
wiregate1250 |
-
- Reactions:
- Beiträge: 4105
- Registriert: So Aug 12, 2018 10:20 am
- Hat sich bedankt: 1435 Mal
- Danksagung erhalten: 1925 Mal
sehr gut, so wird es einfacher die LE sich zu erschließen.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU
-
- Elaborated Networks
- Reactions:
- Beiträge: 588
- Registriert: Mi Aug 15, 2018 11:34 am
- Hat sich bedankt: 82 Mal
- Danksagung erhalten: 560 Mal
Hallo Stephan,
ein guter Punkt:
Mit der Basisfunktion "Ratio" haben wir schon die Möglichkeit den Quotienten A/B zu berechen.
In unserem Fall ist A der Druck (P), also brauchen wir noch eine Möglichkeit das B, den Korrekturterm (1-h/44330)5.255, zu berechnen.
Ich will das über die Polynomfunktion machen und erstelle mir in EXEL oder LibreOffice Calc eine Wertetabelle für den gewünschten Bereich:

Dann gehe ich auf eine WEB-Page mit der ich mir passende Polynom-Koeffizienten berechnen lassen kann, z.B.: https://www.arndt-bruenner.de/mathe/scripts/regr.htm, und versuche es mal mit einem Polynom 5.Grades

Und siehe da, es bleibt nur ein Polynom 2.Grades übrig und die Koeffizienten wähle ich mal auf sechs Stellen genau:
a0 = 1.0
a1 = -0.000118543
a2 = 5.68913e-9
Damit ergibt sich folgende Custom-Logic:

Jetzt mache ich noch eine Abschätzung, wie groß der Fehler mit dieser Näherung ist.
Dazu erweitere ich meine EXEC-Tabelle mit der Näherungsformel und berechne den relativen Fehler für den normierten Luftdruck.

Man sieht hier, dass unter 1500m ü.NN der Fehler kleiner als 0,1% ist. Das ist vermutlich für den Großteil der Anwender ausreichend genau.
Damit aber unser Timberwolf auch noch auf Lager 4 am Mount Everest eine vernünftige Wetterprognose möglich macht, müssen wir genauer werden:
Dazu Teilen wir die Berechnung des Korrekturterms (1-h/44330)5.255 in zwei Schritte (Polynomfunktionen) auf:
1. Schritt: x = 1-h/44330 = 1 - 0.000022558 * h
2. Schritt: Korrekturterm_B = x5.255
Für das erste Polynom können wir die Koeffizienten direkt ablesen:
a0 = 1.0
a1 = -0.000022558
Für das zweite Polynom machen ich mir wieder eine Wertetabelle und lasse mir die Koeffizienten berechnen:


Daraus bauen wir folgende Custom-Logic:

Eine erneute Fehlerberechnung des Näherungsformel ergibt:

Und damit sind wir vermutlich viele, viele Größenordnungen genauer, als der Messwert des Drucksensors.
ein guter Punkt:
Dann möchte ich mal an diesem Beispiel zeigen, wie man hier vorgehen kann.773H hat geschrieben: ↑Fr Jun 07, 2019 9:30 pm Hallo. Bei der Polynomfunktion wäre es hilfreich, wenn man Infos hätte, was man machen soll, wenn die eigene Funkton von der idealen Form a + xa1 + a2x2 + a3x3 ... abweicht.
Will sagen: was mache ich, wenn ich z.B. die Formel P0=P/(1-h/44330) hoch 5.255 eingeben möchte ...
Mit der Basisfunktion "Ratio" haben wir schon die Möglichkeit den Quotienten A/B zu berechen.
In unserem Fall ist A der Druck (P), also brauchen wir noch eine Möglichkeit das B, den Korrekturterm (1-h/44330)5.255, zu berechnen.
Ich will das über die Polynomfunktion machen und erstelle mir in EXEL oder LibreOffice Calc eine Wertetabelle für den gewünschten Bereich:

Dann gehe ich auf eine WEB-Page mit der ich mir passende Polynom-Koeffizienten berechnen lassen kann, z.B.: https://www.arndt-bruenner.de/mathe/scripts/regr.htm, und versuche es mal mit einem Polynom 5.Grades

Und siehe da, es bleibt nur ein Polynom 2.Grades übrig und die Koeffizienten wähle ich mal auf sechs Stellen genau:
a0 = 1.0
a1 = -0.000118543
a2 = 5.68913e-9
Damit ergibt sich folgende Custom-Logic:
Code: Alles auswählen
{
"Level": [
["$SensorWert","float",2.0],
["$Hoehe","float",550.0],
["$P_Abs","float",900.0],
["$P_Rel","float",1013.0],
["$P_Offset","float",700.0],
["$P_Gradient","float",3.2],
["$Korr_A0","float",1.0],
["$Korr_A1","float",-0.000118543],
["$Korr_A2","float",5.68913e-9],
["$H_Korr","float",0.9]
],
"Module": [
["Polynomial","$SensorWert","$P_Abs",["$P_Offset","$P_Gradient"]],
["Polynomial","$Hoehe","$H_Korr",["$Korr_A0","$Korr_A1","$Korr_A2"]],
["Ratio","$P_Abs","$P_Rel","$H_Korr"]
],
"Input": [
["SensorWert","Wert des Barometersensors","$SensorWert","c"],
["Höhe","Höhe über Meeresspiegel","$Hoehe","c"]
],
"Output": [
["P(abs)","Absoluter Druck","$P_Abs","c"],
["P(rel)","Realtiver Druck, bezogen auf Meereshöhe","$P_Rel","c"]
]
}

Jetzt mache ich noch eine Abschätzung, wie groß der Fehler mit dieser Näherung ist.
Dazu erweitere ich meine EXEC-Tabelle mit der Näherungsformel und berechne den relativen Fehler für den normierten Luftdruck.

Man sieht hier, dass unter 1500m ü.NN der Fehler kleiner als 0,1% ist. Das ist vermutlich für den Großteil der Anwender ausreichend genau.
Damit aber unser Timberwolf auch noch auf Lager 4 am Mount Everest eine vernünftige Wetterprognose möglich macht, müssen wir genauer werden:
Dazu Teilen wir die Berechnung des Korrekturterms (1-h/44330)5.255 in zwei Schritte (Polynomfunktionen) auf:
1. Schritt: x = 1-h/44330 = 1 - 0.000022558 * h
2. Schritt: Korrekturterm_B = x5.255
Für das erste Polynom können wir die Koeffizienten direkt ablesen:
a0 = 1.0
a1 = -0.000022558
Für das zweite Polynom machen ich mir wieder eine Wertetabelle und lasse mir die Koeffizienten berechnen:


Daraus bauen wir folgende Custom-Logic:
Code: Alles auswählen
{
"Level": [
["$SensorWert","float",2.0],
["$Hoehe","float",550.0],
["$P_Abs","float",900.0],
["$P_Rel","float",1013.0],
["$P_Offset","float",700.0],
["$P_Gradient","float",3.2],
["$Korr_A0","float",1.0],
["$Korr_A1","float",-0.000022558],
["$Wert_X","float",1.0],
["$Korr_B0","float",-0.950185],
["$Korr_B1","float",5.271796],
["$Korr_B2","float",-11.773697],
["$Korr_B3","float",13.356636],
["$Korr_B4","float",-7.983565],
["$Korr_B5","float",3.079016],
["$H_Korr","float",0.9]
],
"Module": [
["Polynomial","$SensorWert","$P_Abs",["$P_Offset","$P_Gradient"]],
["Polynomial","$Hoehe","$Wert_X",["$Korr_A0","$Korr_A1"]],
["Polynomial","$Wert_X","$H_Korr",["$Korr_B0","$Korr_B1","$Korr_B2","$Korr_B3","$Korr_B4","$Korr_B5"]],
["Ratio","$P_Abs","$P_Rel","$H_Korr"]
],
"Input": [
["SensorWert","Wert des Barometersensors","$SensorWert","c"],
["Höhe","Höhe über Meeresspiegel","$Hoehe","c"]
],
"Output": [
["P(abs)","Absoluter Druck","$P_Abs","c"],
["P(rel)","Realtiver Druck, bezogen auf Meereshöhe","$P_Rel","c"]
]
}

Eine erneute Fehlerberechnung des Näherungsformel ergibt:

Und damit sind wir vermutlich viele, viele Größenordnungen genauer, als der Messwert des Drucksensors.
Gruß,
Stefan K.
Stefan K.
-
- Reactions:
- Beiträge: 428
- Registriert: Mo Okt 15, 2018 9:24 pm
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 208 Mal
Hallo Stefan, absolut topp!
Danke für die ausführliche Anleitung.
Gruß
Stephan
Danke für die ausführliche Anleitung.
Gruß
Stephan
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem
-
- Reactions:
- Beiträge: 2697
- Registriert: Sa Sep 15, 2018 10:26 am
- Wohnort: Kerpen
- Hat sich bedankt: 1016 Mal
- Danksagung erhalten: 810 Mal
Moin zusammen,
oh mein Gott, hätt ich in Mathe mal besser aufgepasst
Beste Grüße
Jens
oh mein Gott, hätt ich in Mathe mal besser aufgepasst

Beste Grüße
Jens
timberwolf168 | (2600er) | VPN offen | Reboot nach Vereinbarung |
timberwolf1699 | (3500XL) | VPN offen | Reboot jederzeit |
wiregate1250 |
-
- Elaborated Networks
- Reactions:
- Beiträge: 10806
- Registriert: So Aug 12, 2018 9:27 am
- Wohnort: Frauenneuharting
- Hat sich bedankt: 5341 Mal
- Danksagung erhalten: 8914 Mal
- Kontaktdaten:
Der Hammer, was für ein Beitrag Stefan.
Liebe Foristen, jetzt wisst ihr, warum Stefan die Logikengine programmiert hat.
Das eigentlich geilste Feature ist das, was man am wenigsten sieht: Jede der zig angelegten Logiken läßt sich unabhängig von allen anderen Logikzellen einzeln stoppen, starten, verändert. Das war eine der schwierigsten Aufgaben hierbei überhaupt. Wer die Wettbewerbsprodukte kennt: Bei den meisten wird die ganze Logik komplett neu gestartet, wenn man an einer Logik auch nur ein Fitzelchen geändert hat. Und so ein Neustart kann auch Minuten dauern, wobei in der Zeit nichts funktioniert. Bei uns am Timberwolf Server alles andere weiter und man kann auch noch die Ein- und Ausgänge live abknipsen, was ebenfalls ein Alleinstellungsmerkmal ist.
==> Das sind sehr wichtige Eigenschaften, bitte bei Berichten in anderen Foren auch herausstellen, weil die meisten achten bei Ihrer Kaufentscheidung nicht auf solche Details (klar, der Wettbewerb stellt das in seinen schönen Farbprospekten auch nicht heraus, dass die Logik immer komplett neu gestartet werden muss und in dieser Zeit nicht verfügbar ist) und daher sollt Ihr uns bitte dabei helfen zu vermitteln, dass es mittlerweile auch ein modernes Produkt mit modernen EIgenschaften gibt: Den Timberwolf Server, bei dem nix von vorne gestartet werden muss, wenn man was daran verändert - weil das gilt auch für alle anderen Engines (selbst beim WireGate Server wurde der Prozess neu gestartet, wenn man an der 1-Wire Einstellungsseite was geändert hat).
Danke fürs Beachten.
lg
Stefan
Liebe Foristen, jetzt wisst ihr, warum Stefan die Logikengine programmiert hat.
Das eigentlich geilste Feature ist das, was man am wenigsten sieht: Jede der zig angelegten Logiken läßt sich unabhängig von allen anderen Logikzellen einzeln stoppen, starten, verändert. Das war eine der schwierigsten Aufgaben hierbei überhaupt. Wer die Wettbewerbsprodukte kennt: Bei den meisten wird die ganze Logik komplett neu gestartet, wenn man an einer Logik auch nur ein Fitzelchen geändert hat. Und so ein Neustart kann auch Minuten dauern, wobei in der Zeit nichts funktioniert. Bei uns am Timberwolf Server alles andere weiter und man kann auch noch die Ein- und Ausgänge live abknipsen, was ebenfalls ein Alleinstellungsmerkmal ist.
==> Das sind sehr wichtige Eigenschaften, bitte bei Berichten in anderen Foren auch herausstellen, weil die meisten achten bei Ihrer Kaufentscheidung nicht auf solche Details (klar, der Wettbewerb stellt das in seinen schönen Farbprospekten auch nicht heraus, dass die Logik immer komplett neu gestartet werden muss und in dieser Zeit nicht verfügbar ist) und daher sollt Ihr uns bitte dabei helfen zu vermitteln, dass es mittlerweile auch ein modernes Produkt mit modernen EIgenschaften gibt: Den Timberwolf Server, bei dem nix von vorne gestartet werden muss, wenn man was daran verändert - weil das gilt auch für alle anderen Engines (selbst beim WireGate Server wurde der Prozess neu gestartet, wenn man an der 1-Wire Einstellungsseite was geändert hat).
Danke fürs Beachten.
lg
Stefan
Zuletzt geändert von StefanW am Sa Jun 08, 2019 12:41 pm, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de
Link zu Impressum und Datenschutzerklärung oben.
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de
Link zu Impressum und Datenschutzerklärung oben.