Fritz!Dect / Comet Dect

Ich nutze Comet Dect  Heizkörperthermostate zur Steuerung des Heizverhaltens und zum senken der Energiekosten.

In Verbindung von ioBroker und Shelly WindowDoor lassen sich erweiterte Funktionalitäten schaffen.

Das Heizen bei geöffneten Fenster zu Beenden kann man bereits im Comet Dect einrichten. Allerdings muss dazu das Thermostat den Temperaturabsturz erkennen und dann schaltet sich die Heizung nur für eine fest hinterlegte Zeit ab. Möchte man in der Nacht mal bei abgeklappten Fenster schlafen, so würde dieser Status vom Thermostat nicht erkannt werden und somit die Heizung fleißig heizen, wenn das Thermostat auf Absenken oder Komfort programmiert wurde.

Abhilfe schafft hier ein Erkennen, dass das Fenster geöffnet wurde. Geräte hierfür gibt es viele. Ich habe hier mal Shelly dw v2 probiert, da Shelly sich sehr einfach in ioBroker integrieren lässt.

Über ioBroker (Hausautomat) kann das Erkennen eines geöffneten Fensters an ioBroker übergeben werden und dieser schaltet dann die ebenfalls über ioBroker laufenden Comet Dect.

Der Comet Dect hat vier Schaltzustände, welche unter fritzdect.0.DECT_xxxx.operationmode hinterlegt werden.

Zustand ioBroker
Aus (Frostschutz 8 C°) Off
Absenkung (16 C° editierbar) Night
Komfort (21 C° editirbar) Comfort
MAX (>28 C°) On

Verzeichnet ioBrocker über den Shelly dw ein geöffnetes Fenster z.B. im Schlafzimmer, so wird der Befehl zum Ausschalten der Heizung im Schlafzimmer übergeben.

on({id: 'shelly.0.SHDW-2#xxxx#1.sensor.door', change: 'any'}, function (obj) {
    var dw01 = getState('shelly.0.SHDW-2#xxxx#1.sensor.door').val;
    if (dw01){
        setState("fritzdect.0.DECT_xxxx.operationmode","Off",false /*ACK*/);
    } else {
        setState("fritzdect.0.DECT_xxxx.operationmode","Night",false /*ACK*/);
    }
});

Damit wird sichergestellt, dass die Heizung nicht die Nacht durchheizt.

So dachte ich mir es 😉

Leider lässt sich der Operationmode nicht schreibend an die FritzBox bzw. Comet Dect zurücksenden. Damit es nun dennoch geht, muss man die Parameter der Temperatur steuern. Hierfür muss der Wert für fritzdect.0.DECT_xxxx.tsoll gesetzt werden.

Ich schalte nun tsoll auf 0, wenn das Fenster auf geht und merke mir den Wert von fritzdect.0.DECT_xxxx.lasttarget. Geht das Fenster wieder zu, so wird die tsoll auf den Wert von lasttarget gesetzt.

var lastTarget;

on({id: 'shelly.0.SHDW-2#xxxx#1.sensor.door', change: 'any'}, function (obj) {
    var dw01 = getState('shelly.0.SHDW-2#xxxx#1.sensor.door').val;
 
    log("Fensterstatus: " + dw01 + " | LastTemp: " + lastTarget + " °C");
    if (dw01){
        setState("fritzdect.0.DECT_xxxx.tsoll","0",false /*ACK*/);
        lastTarget = getState("fritzdect.0.DECT_xxxx.lasttarget").val;
        log("Schalte Heizung aus");
    } else {
        setState("fritzdect.0.DECT_xxxx.tsoll",lastTarget,false /*ACK*/);
        lastTarget = undefined;
        log("Schalte Heizung ein");
    }
});

Und zu guter Letzt fehlt noch eine automatischer Erkennung, wenn man zwischenzeitlich die Temperatur anderweitig verändert, aber immer noch das Fenster offen ist. Dafür muss ein Script auf Änderungen von tsoll reagieren und bei geöffnetem Fenster die tsoll wieder auf 0 setzen.

on({id: 'fritzdect.0.DECT_xxxx.tsoll', change: 'any'}, function (obj) {
    var dw01 = getState('shelly.0.SHDW-2#xxxx#1.sensor.door').val;

    if (dw01){
        setState("fritzdect.0.DECT_xxxx.tsoll","0",false /*ACK*/);
        lastTarget = getState("fritzdect.0.DECT_xxxx.lasttarget").val;
        if (logging){log("Schalte Heizung wieder aus");}
    }
});

 

Shelly 3EM – smarter Energiemesser

Der Shelly 3EM ist ein smarter WLAN-fähiger Energiemesser. Damit lässt sich Problemlos der gesamte Stromverbrauch, aber auch die gesamte Stromeinspeisemenge messen und bequem ansehen.

Die Bequemlichkeit hat den Nachteil, dass man die Hersteller-Cloud verwenden sollte. Aber man muss es nicht und muss auch nicht unnötig flashen.

Ich nutze als Home-Zentrale ioBroker auf einem Rasperri Pi4 und habe dort einen Shelly-Adapter installiert. Über diesen Adapter kann man wahlweise sich die Daten von der Cloud des Herstellers holen oder man stellt den Shelly auf MQTT und so sendet der Shelly direkt an den ioBroker. In diesem Fall verzichtet man jedoch auf die gute Darstellung und Statistiken der App.

Installation

Die Installation ist eigentlich Plug&Play, dennoch empfehle ich einen Elektriker dafür. Hier gebe ich nur ein paar Tipps, anhand dessen kann jeder für sich den Elektriker-Einsatz abwägen.

Für den Gesamtverbrauch muss man mit den Wandlern A-C um die drei Hauptleitungen, welche in der Regel vom Stromzähler aus dem Keller zum FI-Schalter im Wohnungssicherungskasten führen.

Üblicher Sicherungskasten, unten kommen schwarz, grau und braun und gehen zum FI-Schalter

Farben spielen hier eine untergeordnetere Rolle, wichtig ist zu erkennen, welche der Leitungen ist Phase 1, 2 oder 3

Vom FI-Schalten gehen drei Kabel zur Sammelschiene der einzelnen Leitungsschalter (Sicherungen). Man schaut nun in welche Sicherung die Kabel gehen.

Deutlich zu erkennen das erste Kabel von Links (Verlängerung von Schwarz) geht auf Sicherung F5.

Das zweite Kabel (Verlängerung von Grau) geht auf Sicherung F6.

Das dritte Kabel (Verlängerung von Braun) geht auf Sicherung F7.

Ich habe insgesamt 10 Sicherungen und bei mir gehen die drei Kabel auf die Sicherung 5, 6 und 7. Die Sammelschiene ist ebenso auf drei Phasen ausgelegt und so ist immer auf Sicherung 1 auch Phase 1, auf Sicherung 2 demnach Phase 2 und Sicherung 3 letztlich Phase 3. Diese Reihenfolge führt sich so fort, so dass Sicherung 4 auch Phase 1 nutzt. Die Sicherung 5 wäre sodann auf Phase 2 und Sicherung 6 auf Phase 3, die Sicherung 7 beginnt wieder auf Phase 1 ….

Nebenbei erwähnt, der Herdanschluss läuft in der Regel auf allen drei Phasen. Grund ist der hohe Stromverbrauch, der über ein normale Leitung nicht gehen sollte. Daher verteilt sich das auf die drei Phasen.

ACHTUNG
Sorgt dafür, dass kein Strom mehr über die Sicherungen gehen!
Am besten legt man den FI-Schalter um. So ist oberhalb alles tot.
Aber die Zuleitung bis zum FI-Schalter sind weiterhin unter Spannung!

Jetzt klippst man Wandler A am Shelly auf die Buchse A und legt den Wandler um die Phase 1, also das Kabel was in meinem Fall von Sicherung 7 zum FI-Schalter geht und an der Stelle am FI-Schalter wieder rauskommt. Der Wandler kommt um das Kabel vor dem FI-Schalter. Bei mir ist das das dickere braune Kabel.

Bei den Wandlern ist die Richtung wichtig, damit die Werte korrekt als positive Zahl / Verbrauch angezeigt werden kann. Hierzu schaut man auf den Wandler „K -> L“.
K ist der Kunde und L der Lieferant. K zeigt hierbei zum FI-Schalter, weil wir der Kunde sind. Der Pfeil ist dabei etwas verwirrend, weil er vom Kunde zum Lieferant zeigen muss.

Der Wandler B kommt auf die Buchse B und wird um das Kabel gelegt, welches Phase 2 ist. In meinem Fall ist das das dickere schwarze Kabel, welches zur Sicherung 5 gegangen ist.

Wandler C kommt auf die Buchse C am Shelly und muss um das Kabel für Phase 3. In meinem Fall ist es das dickere graue Kabel, dass letztlich zur Sicherung 6 geht.

Damit die Wandler korrekte Werte anzeigt, benötigt man zu jeder Phase bzw. Wandler die passenden Volt-Werte. Dazu verbindet man N vom Shelly an die N-Leiste vom Sicherungskasten. In der Regel nimmt man dafür ein blaues Kupferkabel.

Nun hat der Shelly auch drei Eingänge für die Volts der drei Phasen. AV kommt oben mit an die Sicherung, wo Phase 1 benutzt wird. In meinem Fall war es Sicherung 7. BV kommt oben mit an die Sicherung, welche über Phase 2 läuft. In meinem Fall ist es die Sicherung 5. Bleibt noch CV, welche für Phase 3 übrig bleibt. In meinem Fall oben mit an die Sicherung 6 angeschlossen.

Über die Volt-Anschlüsse und N bekommt der Shelly auch seinen Strom.

Jetzt aktiviert man den Strom wieder und der Shelly startet auch. Der Shelly ist kinderleicht über die App „Shelly“ einzurichten, so dass ich hier nicht weiter darauf eingehen möchte.

In der App sieht man nun seinen Shelly und den Gesamtverbrauch in Watt. Geht man weiter in die App rein, so sieht man genau was auf Phase A, B oder C verbraucht wird. Über die Zählweise der Sicherungen von vorne mit 123,123,123 … hat man ganz schnell raus, welches Zimmer oder Steckdose auf welche Phase läuft.

Sicherungskasten

Speist man z.B. über Solar ein, so wird auch dies vom Shelly erkannt und als Negativ-Wert angezeigt. Wenn man seinen Solar-Ertrag ebenfalls kennt, weil der Wechselrichter es ausgibt oder weil man das einspeisen mittels Messgerät (Fritz!Dect) misst, hat man sehr schnell raus, was genau an Strom erzeugt wurde und was man davon tatsächlich selbst nutzt oder eben dem Netzbetreiber einspeist / schenkt.

Beispielbild

Anhand dieses Beispielbildes würde man jetzt erkennen, dass man zum Zeitpunkt der Solarenergieerzeugung einen zu niedrigen Eigenverbrauch hatte und so knapp 1kWh verschenkte.

Durch Optimierung des eigenen Stromverbrauchs oder durch Verwendung einer Speicherlösung kann man den Stromüberschuss verringern oder auffangen und zu einem späteren Zeitpunkt verwenden. Es gilt je höher der Grundstrom ist, weil z.B. ein Aquarium betreibt oder eine Tiefkühltruhe im Keller um so wahrscheinlicher ist es, dass man keinen Überschuss hat. In diesem Fall würde sich ein Balkonkraftwerk auch deutlich schneller amortisieren.

Einspeisung als Insel-Lösung mit Blueetti AC200 Max (aber definitiv nichts für Sparfüchse)

ioBroker unter Windows Server 2019 as Docker

Docker in Windows Server 2019

Auf dem Windows Server 2019 habe ich bestimmte Features zu Linux etc. bereits installiert gehabt.

Nun installierte ich das Docker für Windows von Install Docker Desktop on Windows | Docker Documentation

Danach lief der Docker, aber bestimmte Sachen schienen nicht zu funktionieren. Auch das installieren eine Images von ioBrocker für Docker klappte nicht. Nach etwas Googlen bekam ich die Info, dass man den Deamon umswitchen muss. Das habe ich über CMD-Command erledigen können:

"C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon

Das nächste Problem ließ nicht länger auf sich warten …

Hier half es in den Docker-Settings in der Docker Engine den Experimental-Mode zu aktivieren:

{
"experimental": true
}

Docker wurde neu gestartet und der Pull-Befehl konnte nun erfolgreich ablaufen:

 

Randnotizen (für mich)

https://docs.microsoft.com/de-de/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

https://docs.microsoft.com/de-de/virtualization/windowscontainers/manage-containers/container-base-images

PowerShell-Command: docker pull mcr.microsoft.com/windows/iotcore:1809

ca. 310MB werden heruntergeladen und als Basisimage für den Container herangezogen

 

Instanz per Blocky unter ioBroker neu starten

Instanzen per Blocky-Script neustarten, um unter VIS via Button das Script starten zu können.

Im „exec“-Bereich wird der Befehl abgesetzt. Der Instanz muss das Ausführen von Exec-Befehlen erlaubt worden sein!

Im „steuere“-Bereich setze ich das eigene Script auf „false“, so dass sich das Script von alleine Beendet.

<xml xmlns="http://www.w3.org/1999/xhtml">
<block id="@R7IB+X270TR*4*g),5s" type="exec" y="13" x="13">
<mutation with_statement="false"></mutation>
<field name="WITH_STATEMENT">FALSE</field>
<field name="LOG">log</field>
<value name="COMMAND">
<shadow id="H53N4gs7:Ha|f}^lA,)Z" type="text">
<field name="TEXT">d:\apps\iobroker\iobroker.bat restart alexa2.0</field>
</shadow>
</value>
<next>
<block id="zkb]dlKymabjHap.+.#!" type="control">
<mutation delay_input="true"></mutation>
<field name="OID">javascript.0.scriptEnabled.Alexa.restart-Instanz</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">2000</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">TRUE</field>
<value name="VALUE">
<block id="TUq9MCB@5WsX*=#h(Us{" type="logic_boolean">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</next>
</block>
</xml>

ioBroker – Automate your Life

Installation unter Windows:

ioBroker führt keine ordentlichen Befehle auf der Commando-Line aus, wenn man sich nicht im ioBorker-Verzeichnis befindet.

C:\Users\xxx>d:\apps\iobroker\iobroker restart alexa2.0

C:\Users\xxx>node node_modules/iobroker.js-controller/iobroker.js restart alexa2.0
internal/modules/cjs/loader.js:582
throw err;
^
Error: Cannot find module 'C:\Users\xxx\node_modules\iobroker.js-controller\iobroker.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
at Function.Module._load (internal/modules/cjs/loader.js:506:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
at startup (internal/bootstrap/node.js:285:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

Grund: In der iobroker.bat muss man den eigenen Pfad bekannt geben, danach funktioniert das ganze problemlos. Auch als Exec-Befehl z.B. in Blocky kann man nun so Instanzen per Script neu starten. Ändert das Script wie folgt ab:

SET SCRIPT_LOCATION=%~dp0
node %SCRIPT_LOCATION%/node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5

OneNote vs Evernote

OneNote und Evernote sind auf dem ersten Blick beides digitale Notizbücher. Beide Versionen gibt es als Free-Version mit unterschiedlichen Einschränkungen zur entsprechenden Zahl-Version. Wobei OneNote als Zahl-Version nicht einzeln erhältlich ist und mit zum Office-Paket gehört.

Ich persönlich sympathisiere für OneNote von Microsoft, aber ich versuche dennoch aus einem neutralen Blickwinkel beide zu vergleichen. In meinem Vergleich nutze ich Microsoft OneNote in einem Office 365 Business Premium Abo und Evernote Business.

Aufbau

OneNote

Ein Buch besteht in OneNote aus Abschnitten/Reiter und Seiten ähnlich wie in einem Aktenordner. Die Abschnitte sind Deckseiten/Register und die Seiten sind die Notizen. Es können unzählige Notizen/ Seiten erstellt werden. Diese Seiten kann man bis zu 3 Ebenen einrücken, so dass man innerhalb einer Notiz/Seite eine ordnerähnliche Struktur aufbauen kann.

Evernote

 

Teamarbeit

Ein Unterschied der beiden ist, dass in einer Notiz mit mehreren Bearbeitern kein Hinweis in Evernote enthalten ist, wer bestimmte Passagen in der Notiz geschrieben bzw. zu letzt geändert hat. Im OneNote hingegen sieht man die Initialen, Name und Datum einer Änderung. Aber in beiden erkennt man nicht genau was konkret geändert wurde.

 

PDFCreator 1.7.2 – PDFCreatorMods

Automatisiertes Speichern von PDF

PDF-Drucker gibt es wie Sand am Meer, aber PDF-Drucker die ohne Benutzereingabe in PDF ins Netzwerk speichern können sind nicht so leicht zu finden.

Mein Tipp wäre PDFCreator https://de.pdfforge.org/pdfcreator__, mit der aktuellsten kostenfreien Version 3.3.2 funktioniert das für normale Benutzer gut. Jedoch muss man als normaler Benutzer das nicht wirklich haben.

Interessant wird es aber, wenn Systeme wie Faxserver ankommende Faxe nicht ducken sondern als PDF speichern sollen. Hier hilft im ersten Augenblick scheinbar nur die kostenpflichtige Version PDFCreator Server, da die anderen Versionen Druckbefehle von Diensten nicht korrekt umsetzen können und die installierten Drucker aus der Free oder Business-Version nicht direkt netzwerkfähig sind.

Nach einigen Recherchen stieß ich auf einen Forumeintrag, der meinte das eine alte Version von PDFCreator (1.7.3) der einen netzwerkfähigen Drucker bereitstelle und als Art Service laufen könne. In der Tat es ist so!!

Allerdings muss man die Setup-Datei „PDFCreator-1_7_3_setup.exe“ mühsam im Internet suchen. PDFCreator unterstützt die Version nicht mehr, man möchte ja mit der Server-Version Geld verdienen.

ABER ACHTUNG!!!

Produkte von PDFCreator sind gespickt mit Mailware und Candy, weil beim Setup andere Programme oder Werbung aus dem Netz nachgeladen wird.

PDFCreator 1.7.3 konnte ich ohne Virenschutz erst gar nicht installieren, wegen „Win32.Adware.OpenCandy.P“

Auch die kostenfreie Version PDFCreator enthält Programme die beim Setup aufgerufen werden (lsop.exe) und vermutlich bösen machen wollen.

Dies antwortete der Hersteller daraufhin

“Bei der vom Antivirus blockierten Datei handelt es sich, um ein Programm, das verwendet wird, um Dateien von unseren Servern herunterzuladen, die dazu dienen eine Anzeige unserer Werbepartner anzuzeigen. (Die Software des Partners wird nur heruntergeladen, wenn Sie in der Anzeige zustimmen.
Die Werbung ist selbstverständlich nur in PDFCreator Free enthalten.“ “Sorry for the inconveniences!
Please note that PUA is short for “Potentially unwanted application”
A PUA is not malware.
The lsop.exe allows our setup to display an advertisement and it’s only included in PDFCreator Free.
In this case our partner is Lavasoft with their software Webcompanion.
The offer will pop up after PDFCreator was installed and of course, you can decline the installation.
If you’re not okay with the advertisement in our free PDFCreator, make sure to take a look at PDFCreator Plus 68 or at PDFCreator Business 60, if you’re using PDFCreator at the office.“

Mein Tipp: Legt Euch eine Firewall-Rule an, welche den gesamten Netzwerkverkehr während des Setups blockiert. Schaut zu dem nach Veränderung vom „AppData“-Verzeichnis / „appdata/local/temp“ / „Windows-Temp“.

Und achtet bei der Installation auf den Experten-Modus, dort kann man das eine oder andere beim Setup deaktivieren. Nach dem Setup kann man über die Firewall das eigentliche Programm am Herunterladen hindern.

Programme mit OpenCandy:

Legt das Netzwerk lahm, startet das Setup über cmd.exe und ruft die Setup-Datei mit dem Zusatz /NOCANDY auf. Schaut in AppData nach seltsamen Veränderungen und löscht unnötiges Zeug.

PDFCreator ohne Mailware installieren

Derzeit arbeite ich an einer Lösung PDFCreator 1.7.2 ohne deren Setup-Datei in Betrieb zu nehmen. Es sei gesagt es funktioniert, ich muss nur noch einiges durchdenken und am OpenSource von PDFCreator 1.7.2 einiges optimieren. Derzeit liegt dieses Projekt als VB6 zur Verfügung, was den Einsatz von .net Framework unnötig macht bzw ohne arbeitet.

Stichworte zum selber tüfteln:

InnoExtractor – kann in die Mailware behaftete Setup-Datei schauen und man kann sich hier nur die benötigte PDFCreator.exe und das Verzeichnis Languages herausziehen.

Nun brauch man noch die pdfcmon.dll, die ins System32-Verzeichnis zu kopieren ist und mittels eines Regeintrags als Printer-Monitor aktiviert wird.

Danach erstellt man sich einen Drucker der an LPT mit den PDFforge-Treibern installiert wird. Nach der Installation stellt man den Anschluss auf „pdfcmon“.

Jetzt wird ein Druck über diesen Drucker in ein Spool-Verzeichnis als *.PS-Datei erstellt. Zudem wird eine gleichnamige *.ini-Datei mit Erkennungsparametern erstellt.

Mit einigen weiteren Reg-Einträgen zum Programm PDFCreator kann man nun die Druckdateien aus dem Spool-Verzeichnis erkennen und nach PDF umwandeln und automatisiert in ein anderes Verzeichnis speichern.

Eigene Anwendung

Über das SDK von Windows soll es möglich sein selber einen Printer Monitor / Anschluss in Form einer *.dll erstellen zu können. In wie weit hierzu dann auch Treiber benötigt werden, muss ich noch recherchieren.

Aber mit dem eigenen Monitor wäre man noch freier von dem PDFforge und weiß so dann auch was in der dll und seinen Druck-Treibern alles drin steckt. Letztlich ist es der Printer Monitor, der die Drucksachen als *.ps-Datei in ein Verzeichnis legt. Mit GhostScript wird später nur die Umwandung nach PDF realisiert.