NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[Erfahrungsbericht] Beispiel für dem Umgang mit Schaltzeiten

Rund um die CometVisu im Timberwolf Server

Ersteller
blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 896 Mal
Danksagung erhalten: 700 Mal

Beispiel für dem Umgang mit Schaltzeiten

#1

Beitrag von blaubaerli »

Hallo zusammen,

Robert hat mich in diesem Post hier: viewtopic.php?f=65&t=2555#p28682 dazu motiviert, mal was zu meinem Lösungsansatz mit Schaltzeiten in der CometVisu zu schreiben.

Meine Lösung ist leider wieder nicht so einfach kompatibel zu den hier im Formum bereits geposteten Logiken zur Zeitfenstersteuerung bzw. neuen ZSU-Logik.

Ich hatte meine Schaltzeiten bereits als DPT 10.001 vorliegen und habe daher die erwähnten Logiken entsprechend anpassen müssen. Ich sende also nicht Stunde, Minute und Sekunde als getrennte Werte in die hier bekannten Logikbausteine.

Die Entscheidung mit dem DPT 10.001 zu arbeiten ist bei mir schon ewig alt, da ich hoffe damit zu den dann mal kommenden Standardlösungen von Elabnet kompatibel zu sein und sich dann die Umbauaufwände in Grenzen halten, wenn ich meine Interimslösungen gegen den Standard tauschen will.

Für mich ergab sich dann, dass wenn ich hier mit Schaltzeiten arbeiten will, für mich um den DPT 10.001 eigentlich kein Weg vorbei geht. Weil das der KNX-Standard einfach mal so vorsieht. Nun hat die CometVisu im Umgang mit diesem DPT nun leider nicht gerade ihre Stärken, zumindest was das Schreiben eines solchen Wertes angeht. (siehe dazu auch hier: viewtopic.php?f=37&t=1018)

Also sieht meine Lösung jetzt so aus, dass ich pro Schaltzeit zwei Objekte und zwei GA's im Einsatz habe. Jeweils einmal vom DPT 12.001 und einmal dann DPT 10.001.

Mit dem DPT 12.001 bastele ich mir dann originär über die CV die jeweiligen Sekunden ab Mitternacht zusammen, also im Wertebereich zwischen 0 und 86399. Das Ganze pro Uhrzeit in der CV mit jeweils zwei Infotriggern, einmal für Stunde und dann Minute. Zur Darstellung der Ergebnisuhrzeit nutze ich dann in der CV bereits die GA mit dem DPT 10.001.

Um die Übernahme des DPT 12.001-Wertes in das zugehörige DPT 10.001-Objekt des Wolfes, bzw. der damit verbundene GA zu bewerkstelligen, habe ich im "Objekt Manager" die beiden Objekte verknüpft.

Das sieht dann dazu konkret so aus:
28-12-_2020_13-51-35.jpg
Der auf ein rudimentäres Minimum reduzierte Code aus der CV:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<pages lib_version="8" design="metal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../visu_config.xsd">
  <meta>
    <plugins>
      <plugin name="clock"/>
    </plugins>
    <mappings>
      <mapping name="TimeHM">
        <formula>y = x &amp;&amp; x.constructor === Date ? x.getHours() + ':' + (x.getMinutes()&lt;10?'0':'') + x.getMinutes() + ' Uhr' : x;</formula>
      </mapping>
      <mapping name="Leer">
        <entry value="*"/>
      </mapping>
    </mappings>
    <stylings>
    </stylings>
    <statusbar>
      <status type="html">&lt;img src="icon/comet_64_ff8000.png" alt="CometVisu" /&gt; by &lt;a href="http://www.cometvisu.org/"&gt;CometVisu.org&lt;/a&gt;
          - &lt;a href=".?forceReload=true"&gt;Reload&lt;/a&gt;</status>
      <status type="html" hrefextend="config" condition="!edit">- &lt;a href="editor/"&gt;Edit&lt;/a&gt;</status>
      <status type="html" hrefextend="config" condition="edit">- &lt;a href="."&gt;normal Mode&lt;/a&gt;</status>
      <status type="html">- &lt;a href="?config=demo"&gt;Widget Demo&lt;/a&gt;</status>
      <status type="html" hrefextend="config">- &lt;a href="check_config.php"&gt;Check Config&lt;/a&gt;</status>
    </statusbar>
  </meta>
  <page name="Zeiten">
    <layout colspan="12"/>
      <group name="Frühestens auf" nowidget="false">
        <layout colspan="3"/>
        <infotrigger mapping="Leer" align="center" styling="- not set - (undefined)" shorttime="300" infoposition="middle" max="86399" min="0" shortdownvalue="-3600" downvalue="-14400" shortupvalue="3600" change="absolute" upvalue="14400" downlabel="-" uplabel="+">
          <layout colspan="3"/>
          <label>Stunde</label>
          <address mode="readwrite" transform="DPT:12.001" variant="relative">12/1/0</address>
        </infotrigger>
        <infotrigger mapping="Leer" align="center" styling="- not set - (undefined)" shorttime="300" infoposition="middle" max="86399" min="0" shortdownvalue="-60" downvalue="-600" shortupvalue="60" change="absolute" upvalue="600" downlabel="-" uplabel="+">
          <layout colspan="3"/>
          <label>Minute</label>
          <address mode="readwrite" transform="DPT:12.001" variant="relative">12/1/0</address>
        </infotrigger>
        <info align="center" mapping="TimeHM">
          <layout colspan="3"/>
          <label>
            <icon name="time_clock"/>
          </label>
          <address mode="read" transform="DPT:10.001">12/1/1</address>
        </info>
      </group>
  </page>
</pages>
Der Aufbau der Weiterleitung im "Objekt Manager" sieht dann so aus:
28-12-_2020_14-17-36.jpg
  1. Das ist das Objekt mit dem DPT 12.001 (in der ETS mit der GA 12/1/0 verbunden)
  2. Und hier das vom DPT 10.001 (in der ETS mit der GA 12/1/1 verbunden)
  3. Das hier ist der Ausgang meiner persistierenden Logik für die Schaltzeiten (siehe dazu hier: viewtopic.php?f=65&t=1894)
  4. Und das eben der Eingang.
Vorteile des Ansatzes:
  • insgesamt weniger Hilfsobjekte im Einsatz
  • persistiert werden muss hier nur 1 Objekt pro Schaltzeit (der DPT 12.001-Wert)
  • Hoffentlich einfacher steckerkompatibel für künftige Dinge, da Nutzung des Standarddatentyps
Nachteil:
  • Die im Doktormodus der Logiken angezeigten Werte sind nicht gerade einfach "menschenlesbar", oder habt ihr schon nachgerechnet, wofür die 32400 im Screenshot steht :crying-yellow:. Wer also seine Schaltpunkte eh nicht über die CV editiert, ist mit der Aufspaltung der Zeiten auf Stunden/Minuten/Sekunden wohl besser dran. Aber das kann ich meiner Regierung wieder nicht zumuten. Parameter im Logikeditor ändern? Das hat wiederum leider einen gegen 0 tendierenden WAF (WomansAcceptanceFactor) :laughing-rolling:
Die Anpassungen der Logiken für das hier dargestellt System ist allerdings echt kein Hexenwerk. Statt der drei Eingangszeitwerte gibt es eben nur einen und das Errechnen des Schaltoffsets selbst entfällt dann.

Beste Grüße
Jens
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von blaubaerli am Mo Dez 28, 2020 5:12 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1194
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 236 Mal
Danksagung erhalten: 857 Mal
Kontaktdaten:

#2

Beitrag von Chris M. »

blaubaerli hat geschrieben: Mo Dez 28, 2020 3:33 pm Für mich ergab sich dann, dass wenn ich hier mit Schaltzeiten arbeiten will, für mich um den DPT 10.001 eigentlich kein Weg vorbei geht. Weil das der KNX-Standard einfach mal so vorsieht. Nun hat die CometVisu im Umgang mit diesem DPT nun leider nicht gerade ihre Stärken, zumindest was das Schreiben eines solchen Wertes angeht. (siehe dazu auch hier: viewtopic.php?f=37&t=1018)
Seit dem Thread hat sich bei der CometVisu etwas getan, das Clock-Plugin ist ab dem kommenden 0.12 Release komplett überarbeitet, vgl. z.B. schon mal die Doku dafür: https://www.cometvisu.org/CometVisu/de/ ... index.html
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Ersteller
blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 896 Mal
Danksagung erhalten: 700 Mal

#3

Beitrag von blaubaerli »

Hi Chris,

geilomat!

Ich hatte gestern mal ein wenig nach Neuerungen in der 12er gestöbert, war wohl aber zu doof was zu finden.

Wenn es was Sinnvolles zu testen gibt, sag Bescheid.

Beste Grüße
Jens
Zuletzt geändert von blaubaerli am Mo Dez 28, 2020 11:46 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#4

Beitrag von Robert_Mini »

Hallo Jens!
blaubaerli hat geschrieben: Mo Dez 28, 2020 3:33 pm Also sieht meine Lösung jetzt so aus, dass ich pro Schaltzeit zwei Objekte und zwei GA's im Einsatz habe. Jeweils einmal vom DPT 12.001 und einmal dann DPT 10.001.
Wieso brauchst du pro Zeitpunkt 2 GA?, d.h. wiederum 4 GA für Ein+Ausschalten - richtig?
Mehr hab ich im Moment auch nicht: h_ein, min_ein, h_aus, min_aus.

Aber einem DPT10 pro Zeitpunkt könnte ich natürlich was abgewinnen.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 896 Mal
Danksagung erhalten: 700 Mal

#5

Beitrag von blaubaerli »

Hallo Robert,

habe ich da nicht irgendwo Sekunden gesehen? Und dann musst du die auch alle gesondert durch die Persistenzlogik schleifen.

In der Persistenz habe ich nur genau den einen Wert.

Wenn ich pro Schaltpunkt aktuell 2 Objekte mit unterschiedlichem DPT habe und beide in der Visu nutzbar haben will, dann brauche ich doch auch jeweils eine zugehörige GA mit dem passenden DPT, oder? :confusion-scratchheadyellow:

Aber ich werde jetzt mal mit der neuen Version der Visu experimentieren. Dann vereinfascht sich das ja nochmal deutlich. Ein Objekt mit einer GA, beides vom DPT 10.001 und dann nur genau das eine Objekt in die Persistenzlogik und Anzeige und Modifikation in der CV über das neue Plugin. :dance:. Hier bliebe dann "nur" noch der "Nachteil" mit den nicht dekodierten Schaltwerten im Doktormodus.
Ich werde berichten.

Beste Grüße
Jens
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#6

Beitrag von Robert_Mini »

Hallo Jens!

Du hast recht. Mit den Sekunden wird es noch deutlicher und Persistenz hatte ich nicht am Radar.
blaubaerli hat geschrieben: Di Dez 29, 2020 11:51 am Hier bliebe dann "nur" noch der "Nachteil" mit den nicht dekodierten Schaltwerten im Doktormodus.
Naja, die ZSU läuft in unix-time, ist im Dokmode auch nicht besser lesbar..., außer dass der Input in hh:mm:ss ist.
Man könnte aber die DPT10-Zeit einfach durch einen Unix-Zeitwandler schicken und optional hh und mm ausgeben...

Ich bau das mal mit ein:
- Schaltzeiten optional als DPT10 (=> wenn eine der beiden <> 0, dann werden die DPT10 verwendet)
- Ausgabe der gewandelten Schaltzeiten als optionale Ausgänge

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

SchlaubySchlu
Reactions:
Beiträge: 214
Registriert: Mo Aug 13, 2018 9:32 pm
Wohnort: Allgäu
Hat sich bedankt: 107 Mal
Danksagung erhalten: 91 Mal

#7

Beitrag von SchlaubySchlu »

Hallo Gemeinde,
da ich aktuell ja auch versuche eine Zeitschaltuhr in meinen TWS zu bekommen bin ich auch schon über die Thematik getrennte GA's für Stunde, Minute, Sekunde vs. DPT10 gestoplert bin.
Eigentlich bin ich der Meinung das ein Handling über DPT10 besser wäre als getrennte GA's aber das würde dann bedeuten das wir einen Logik-Baustein benötigen der eine Umformatierung macht, bzw. müssten auch die Astro-Umrechnungs-Logiken angepasst werden. So eine Umformatierungs-Logik könnte auch bei den Problemen der Nichtlesbarkeit des DPT10 helfen oder?

Grüße
Ralf
Timberwolf Server 2600 #196, VPN offen, Reboot nach Vereinbarung, BM 729

Ersteller
blaubaerli
Reactions:
Beiträge: 2322
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 896 Mal
Danksagung erhalten: 700 Mal

#8

Beitrag von blaubaerli »

Hallo Ralf,

schau mal hier: viewtopic.php?f=37&t=2539&p=28396#p28396

Da gibt es schon was von "Stefanopharm" :handgestures-thumbsup:

Beste Grüße
Jens
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

SchlaubySchlu
Reactions:
Beiträge: 214
Registriert: Mo Aug 13, 2018 9:32 pm
Wohnort: Allgäu
Hat sich bedankt: 107 Mal
Danksagung erhalten: 91 Mal

#9

Beitrag von SchlaubySchlu »

Danke für den Tipp
Timberwolf Server 2600 #196, VPN offen, Reboot nach Vereinbarung, BM 729

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1168 Mal
Danksagung erhalten: 2076 Mal

#10

Beitrag von Robert_Mini »

Hallo Ralf!
Ich bin schon dabei, die ZSU um den DPT10 zu erweitern...

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „CometVisu“