Abfallkalender im ioBroker

      Keine Kommentare zu Abfallkalender im ioBroker

Mein Ziel war es, im ioBroker VIS einen Auszug aus dem Abfallkalender darzustellen, der mit Symbolen die nächsten vier Termine anzeigt. Ich realisiere das, indem ein Skript die Termine aus einer ical-Instanz liest und dann zusammen mit den Symbolen im VIS dargstellt.

Voraussetzungen

  • Eine eigene “ical”-Instanz für den Abfallkalender
  • Abfallsymbole
  • einen Google-Kalender für die Abfalltermine

Verbinden der ical-Instanz mit dem Google-Kalender

Zunächst erstellt ihr euch einen Google-Kalender, der nur für die Abfalltermine verwendet wird. Im Idealfall stellt euer Abfallunternehmen eine ics-Datei bereit, die in den Kalender importiert wird. Wichtig! Bei mir funktioniert das nur korrekt, wenn die Termine “ganztags”-Termine sind.

Die ical-Instanz benötigt einen URL auf den Kalender. Den bekommt man, wenn man in der Webansicht des Google-Kalenders auf die drei Punkte, dann Einstellungen und Freigabe klickt. Ziemlich weit unten findet sich dann der URL mit der Beschriftung Privatadresse im ical-Format. Diese Adresse wird für die ical-Instanz benötigt.

Adapterkonfiguration Haupteinstellungen

Konfiguration der Kalender-Adresse

 

Unter dem Menüpunkt Ereignisse habe ich Vacation deaktiviert.

Der Adapter wird nun neugestartet. In der Objekt-Ansicht von ioBroker kann nun geprüft werden, ob die Schritte erfolgreich waren. Dazu geht ihr mit der Maus über den Wert in der Zeile html und solltet dann im Popup schon ein paar Termine sehen.

ioBroker/Objekte/ical-Instanz

VIS vorbereiten

Damit VIS Bilder anzeigen kann, werden diese mit dem Dateimanager, der im VIS-Editor über Setup erreicht wird, hochgeladen. Ich habe denen folgende Namen gegeben

  • bt.png für Blaue Tonne
  • gt.png für Gelbe Tonne
  • st.png für Schwarze Tonne

Weitere Abfallereignisse sind für mich nicht relevant.

Die Bilder habe ich im Ordner /vis.0/main/bilder/abfall abgelegt.

Im VIS-Editor wird Anzeige des Abfall-Kalenders lediglich ein HTML-Widget angelegt, in die Eigenschaft HTML des Widgets schreiben wir {javascript.0.vis.Abfall}. Das ist ein Verweis auf einen State des Unterhalb des Objektes javascript.0.

Dieser State muss zunächst angelegt werden. Dazu wird under ioBroker/Objekte die Zeile javascript.0 markiert, dann ganz oben auf das Plussymbol Ein Tochterobjekt… klicken.

Den State javascript.0.vis.Abfall als Zeichenkette hinzufügen

Zur Formatierung verwende ich etwas CSS, das im VIS-Editor in der CSS-Eigenschaft einfügt wird.

table.Abfall {
    color: white;
}

td.Abfallimage {
    background-color: gray;
    padding:5px;
}

td.AbfallText {
    text-align: center;
    padding: 5px 10px;
    color: lightblue;
}

Skriptdatei erstellen

Unter ioBroker/Skripte wird ein neues Skript erstellt. Als Typ ins Javascript zu wählen. Dort wird folgender Skripttext eingefügt.

on('ical.0.data.table', function(theObj) {
   var obj = theObj.state.val;
   MakeAbfallHTML(obj);
  
}); 

function MakeAbfallHTML(obj) {
    var html = "<table class=Abfall><tr>";
    
    for (i=0; i<4; i++) {
        if (obj[i]) {
            if (obj[i].event.indexOf("Gelber Sack") > -1) {
                html = html + "<td class=Abfallimage><img width=120 height=120 src=/vis.0/main/bilder/abfall/gt.png></td>";
            }
            
            if (obj[i].event.indexOf("Papier") > -1) {
                html = html + "<td class=Abfallimage><img width=120 height=120  src=/vis.0/main/bilder/abfall/bt.png></td>";
            }
            
            if (obj[i].event.indexOf("Haus") > -1) {
                html = html + "<td class=Abfallimage><img width=120 height=120  src=/vis.0/main/bilder/abfall/st.png></td>";
            }
        }
    }
    
    html = html + "</tr><tr>";
 
    for (i=0; i<4; i++) {
        if (obj[i]) {
            html = html + "<td class=AbfallText>"+obj[i].date+"</td>"   ;
        }
    }
   html = html + "</tr></table>";
   console.log(html);
   setState('javascript.0.vis.Abfall', html); 
}

Das Skript reagiert auf drei Ereignisse, bei denen im Text die Begriffe

  • Gelber Sack
  • Papier
  • Haus

vorkommen und ordnet diesen Ereignissen die jeweiligen Bilder zu. Vergleiche dazu im Skript die Zeilen 12, 16 und 20 (siehe Bild). Diese Begriffe müssen gegebenenfalls an die Texte die in eurem Abfallkalender stehen, angepasst werden.

Ebenfalls könnte dies leicht zum Beispiel um Biotonne erweitert werden, wenn nach Zeile 22 folgender Code eingefügt wird und ein zusätzliches Bild bit.png hochgeladen wird.

if (obj[i].event.indexOf("Bio") > -1) {
                html = html + "<td class=Abfallimage><img width=120 height=120  src=/vis.0/main/bilder/abfall/bit.png></td>";
            }

 

 

 

mc versteckte dateien ausblenden

      Keine Kommentare zu mc versteckte dateien ausblenden

Es ist 2018 und ja ich nutze immer noch den midnight commander. Ab und zu finde ich auch noch eine Optimierung in der Funktionsweise des beliebten Zwei-Fenster-Dateimanagers.
Mit der Tastenkombination

Alt + .
kann man schnell zwischen “hidden” Files hin und her schalten. Die ist ab und zu sehr hilfreich, wenn man den Punkt nicht übers Menü aktivieren will.

Noch eine wichtige Tastenkombination ist das Beenden über eine ssh session.

ESC + 0

ermöglicht Euch ein schnelles Beenden ohne Zeitverlust.

 

Citrix Reciver Problem Ununtu – Verbindung mit 0.0.0.2 Desktop kann nicht hergestellt….

Wenn die Fehlermeldung

Verbindung mit 0.0.0.2 Desktop kann nicht hergestellt werden. Datei oder Verzeichnis nicht gefunden. Überprüfen Sie die Verbindungseinstellungen und versuchen Sie es erneut….

beim Login auf eine Citrix Instanz erscheint, ist dies nicht gerade hilfreich.
Der Hinweis auf ein Problem mit den SSL Zertifikaten hätte da einiges an Zeit gespart.

Eine Lösung wären die beiden Befehle im Terminal

sudo ln -s /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/

und dann

sudo c_rehash /opt/Citrix/ICAClient/keystore/cacerts/

Danach muss die ICA Datei noch einmal geladen werden, damit die Einstellungen aktiv werden.

Sonoff S26 WiFi Smart Plug mit alternativer Firmware flashen

Die Produktpalette von Sonoff wächst von Monat zu Monat. Das liegt sicher auch an dem Umstand, dass man die originale Firmware durch alternative ersetzen kann. Es spielt dabei keine Rolle, ob es Tasmota, ESPEasy oder irgend etwas anderes werden soll. In meinem Fall ist es espurna, da ich ich eine stabile Funktionalität der Firmware gewohnt bin und dies gerne beibehalten möchte.

Leider wurde auf der Platine des Sonoff S26 WiFi Smart Plug auf Pins zum Flashen verzichtet, sodass man sich etwas einfallen lassen muss, wenn man nicht unbedingt Kabel anlöten will.  Gelöst wurde das ganze mittels Adapter, der mit Federstiften Druck auf die Kontakte bringt und somit sicheren  Kontakt hergestellt.


Ein paar Anmerkungen zum Flashen:
Wie üblich nutze ich  VSC. Dabei braucht man nur “Open Folder” und das Verzeichnis, welches per “git clone” angelegt wurde, anzuwählen und in der platformio.ini das richtige device eintragen.


env_default = itead-s20

Nun wird der Adapter aufgesetzt, aber noch nicht mit USB verbunden. Wenn das geschehen ist muss der RESET Button am Gerät gehalten werden und dann erst mit 3,3 V über den USB-Seriell-Adapter versorgt werden. Damit befindet sich das Gerät im Bootmodus und kann neu bespielt werden. Hat dies bis dahin nicht geklappt, wird die blaue LED blinken. Somit ist zumindest Strom vorhanden, aber nicht im Bootmodus. Hier den Vorgang solange wiederholen, bis die blaue LED NICHT blinkt !
Erhält man nun beimFflashen diese oder eine ähnliche Fehlermeldung


Uploading .pioenvs/itead-s20/firmware.bin
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
*** [upload] Error 255

könnte ein verdrehter TX, RX dies verursachen. Bitte TX-RX und RX-TX verbinden. Das unbedingt noch einmal prüfen. Stimmt alles, sollte der upload funktionieren.
Danach kann man alles wieder abklemmen und ins Gehäuse bauen.
Warnung !!! Niemals das Gerät bei geöffneten Gehäuse mit 230V versorgen !!! LEBENSGEFAHR !!!
Zum Flashen ist ausschließlich USB nötig!

Das STL des Adapters findet Ihr zum Nachdrucken auf Thikiverse.

 

ESPEasy – Let’s Control It – mal wirklich easy

Wenn Ihr schon diesen Beitrag abgearbeitet habt, wird es Euch nicht schwer fallen, die komplette Firmware für ESPEasy zu kompilieren und auf einen D1 Mini zu flashen. Im Anschluss wird prototypisch ein BME280 mit einem OLED und dem D1 mini verbunden. Und das Schönste ist, alles funktioniert ohne programmieren. Es wird alles nur zusammengeklickt. Alternativ kann man auch ein fertiges HEX für seine Hardware flashen.
Benötigt werden:
1x OLED
1x BME 280
1x D1 mini

ESPEasy muss erst heruntergeladen geladen werden und dann kompiliert werden.
Dazu ist ein git repository zu ESPEasy zu clonen.

git clone https://github.com/letscontrolit/ESPEasy.git

In der platform.ini muss noch das passende device auskommentiert werden.

env_default = normal_ESP8266_4096 

oder
env_default = normal_ESP8266_1024

entweder für die 1MB oder 4MB Variante.

Das 1. Icon im platform.io ist “Build” und generiert das HEX File, welches mit dem 3. Icon auf den D1 mini “Upload” kopiert wird. Mehr ist nicht einzustellen. Das Image ist sehr generisch.
Wenn alles soweit geklappt hat, sollte der d1 mini rebooten und ein eigenes WLAN erstellt haben. Hier kann man connecten. Dazu nutze ich immer ein Telefon, damit man nicht am Rechner konfigurieren muss.  Dann kann man unter 192.168.4.1 die nötigen Einstellungen des eigenen WLANs erledigen. SSID und Key sind einzustellen. Danach holt er sich eine IP aus dem eigenen Netz und ist zur Konfiguration bereit.

Unter Hardware sieht es bei mir so aus und passt dann auch zu der Verkabelung der Bauteile.

Unter Devices habe ich zwei Geräte angelegt: 1x den BME Sensor und 1x das OLED Display.

Beim Display habe ich noch ein paar weitere Systemwerte hinterlegt, weil noch genug Platz war.

Wenn alles geklappt hat, sollten die Umgebungswerte des BME auf dem Display erscheinen. Nun kann man diese Werte natürlich auch über MQTT oder andere Technologien versenden. Das Prinzip mit dem kleinen Beispiel sollte euch zeigen, wie es generell geht. Es sind aber noch viele andere Funktionen möglich. Gerade der Bereich Regeln und Tools ist sehr interessant.

Viel Spaß bei den ersten Versuchen mit ESPEasy.

 

Ubuntu Nemo – Alternative zu Nautilus

      Keine Kommentare zu Ubuntu Nemo – Alternative zu Nautilus

Auch in der aktuellen Ubuntu Version ist nautilus kaum noch nutzbar. Von Version zu Version werden Funktionen raus genommen. Will oder kann man nicht auf einen zwei Fenster Manager wie Gnome-Comander, Krusader oder Double-Commander zurückgreifen, ist Nemo eine optisch recht ähnliche Alternative zum Systemstandard. Auch wenn Nemo ein Fork ist, gibt es wenigstens noch ein paar mehr Funktionen die man noch nutzen kann. Schaut es euch einfach mal an und  testet selber.

Ubuntu – Auf Nautilus Freigabe über das Terminal zugreifen

Sicher habt Ihr schon einmal über Nautilus eine Windows Freigabe temporär verbunden, also konkret über “Server Verbinden” .

Solange man im Nautilus ist, funktioniert das auch prima. Aber man findet diese Freigabe nicht wie normal mit dem mount Befehl auf der Konsole.

Tatsächlich bindet sich der Mountpoint unter
/run/user/1000/gvfs/smb-share:server=192.168.8.2,share=freigabe/
ein. Hier kann man ganz normale Dateioperationen ausführen, so wie man das auch auf der Konsole gewohnt ist. Keine große Sache, aber man muss es wissen.

Installation von Plattform.io unter Linux

      Keine Kommentare zu Installation von Plattform.io unter Linux

Wenn man im Bereich IoT ein wenig mehr will als “Blink-Example”, wird man schnell feststellen, dass die Arduino IDE nur schwer ausreicht, um ordentlichen Code zu erzeugen.
Eine Alternative bietet die PlatformIO IDE, die gut mit dem Visual Studio Code zusammenarbeitet.

Als erstes muss Visual Studio Code installiert werden. Dazu könnt Ihr Euch hier https://code.visualstudio.com/Download das passende Paket herunterladen (*.deb).
Auf dem lokalen Terminal wird es wie folgt installiert:
dpkg -i paketname.deb

Ist es durchgelaufen, kann man die IDE starten und unter dem 5. Icon auf der linken Seite “Erweiterungen”  nach “platformio-ide” suchen.  Etwas weiter rechts findet sich dann auch der Install-Button. Somit bekommt man nach einem Programm-Neustart die Möglichkeit, Projekte für Atmel AVR, Atmel SAM, Espressif 32, Espressif 8266, Freescale Kinetis, Infineon XMC, Intel ARC32, Intel MCS-51 (8051), Lattice iCE40, Maxim 32, Microchip PIC32, Nordic nRF51, Nordic nRF52, NXP LPC, RISC-V, Samsung ARTIK, Silicon Labs EFM32, ST STM32, Teensy, TI MSP430, TI Tiva, WIZNet W7500 anzulegen.

Auch wenn die Oberfläche erst einmal wie ein Cockpit einer 747 wirkt, wird man schnell die Vorteile erkennen. Empfehlenswert ist noch ein Quick-Start-Guide von  https://docs.platformio.org/en/latest/ide/vscode.html#quick-start.

 

Pi-hole – Etwas mehr Sicherheit und weniger Werbung

Warum denn eigentlich Werbung blocken, wenn viele Webseitenbetreiber davon leben?
Leider denken viele Nutzer, dass die Werbebanner auf Webseiten keine Gefahr sind, da es einfach nur Bilder mit Links sind. Weit gefehlt. Heutzutage werden auch massenhaft “Malvertising” ausgeliefert, also Schadcode, der über die großen Werbenetzwerke verteilt wird. Diese Technik wird immer mehr zum Risiko für die Nutzer. Da überrascht es auch nicht, dass der Trend zu AdBlockern immer weiter zunimmt.

Leider können diese lokal installieren Blocker nur Werbung und anderen ungewollten Code aus dem Browser filtern. Was ist aber mit Werbung in APPs, Smart-TV  und anderen am Netz angeschlossenen Geräten? Der Aufwand dies an jedem Gerät zu bewerkstelligen ist enorm und dem Standard-Nutzer nicht zuzumuten.Einen Ansatz bietet Pi-Hole, welches laut eigenen Aussagen weit über 100.000 Domains blockt, deren Sinn es ist, Werbung auszuliefern. Pi-Hole fungiert also als Filter jeglicher Namensabfragen im lokalen Netz. Wird eine Übereinstimmung gefunden, reagiert der Pi-Hole mit einer Filterregel, die die Auslieferung dieses angeforderten Materials verhindert.

Im einfachsten Fall reicht schon ein Rasperry 1, wobei die Entwickler ein Modell der Reihe 3 empfehlen.

Pi-Hole wird in einer SSH Session vollautomatisch installiert.
curl -sSL https://install.pi-hole.net | bash
Die angefragten Einstellungen könnten so lauten:

Select Upstream DNS Provider
Custom: 85.214.20.141, 213.73.91.35   (wenn man etwas mehr Geschwindigkeit benötigt ist auch 1.1.1.1 eine gute Wahl)

Do you want to use your current network settings as a static address?
IP address: 192.168.x.X (Pi Adresse)
Gateway: 192.168.x.x (euer Router)

Select Protocols
IPv4: Check
IPv6: Uncheck

Do you want to log queries?
On: Check

Alle Einstellungen können aber noch in der Weboberfläche angepasst werden.
http://pi.hole/admin oder http://192.168.x.x/admin

Nun muß noch der DHCP die neue DNS IP, also die IP des Pi-Hole, an die Clients verteilen. Das könnt ihr im Router unter “DNS/DHCP” bewerkstelligen.

Pi-Hole ist natürich nicht perfekt, also empfehle ich auch weiterhin die Nutzung von uBlock Origin im Browser, da hier noch weitere Filtertechniken genutzt werden. Aber als 1. Verteidigungslinie sieht man schon in der Statistik, was so alles ausgefiltert wird. Weiterhin spart man außerdem CPU-Power sowie Bandbreite, da diese Inhalte ja nun nicht mehr geladen werden. Und sollte doch mal zu viel ausgefiltert werden, kann man die betreffende URL auch einfach in der Weboberfläche wieder in die sogenannte Whitelist hinzufügen.
In meinem Beispiel werden 12.4% der Anfragen vernichtet, ohne eine Einschränkung in der Nutzung zu bemerken.

MMDVM Open Source Multi-Mode Digital Voice Modem im Brandmeister aktivieren

Endlich mal digital QRV gehen. Das nimmt man sich schon so lange vor, aber mit einem DMR Gerät ist es nicht immer getan, da der nächste Repeater zu weit entfernt ist. Die Lösung ist ein eigener Hotspot der per WLAN oder LAN mit dem Netzwerk verbunden wird und die HF Schnittstelle für das DMR Gerät bereitstellt.
Was wird alles benötigt?

1x Rasperry PI zero W (WLAN) ohne W, aber dann braucht man noch ein LAN Adapter
1x Speicherkarte
1x Netzteil
1x MMDVM alternativ direkt aus china.

Die Pinleisten müssen noch in den Raspi  eingelötet werden und ins Gehäuse geschraubt werden. (wenn vorhanden)

Dinge die man noch  braucht.
1. Pi-Star Image -> Download
2. Ethcher -> Download
3. Pi-Star WiFi Builder -> Link
4. SD Card / Reader

Weitere Infos bereitlegen
1. Rufzeichen und ID beantragt
2. Frequenz die man für den Link zum MMDVM nutzen möchte (BSP: RX=TX 435.000 MHz)
3. Die eigene GPS Position
4. Node Type, Private

1. Starte Etcher
2. Wähle das Image für den Raspi aus
4. Flash!
5. Nach dem Flashen kann man nocht den WiFI Builder benutzen um die WLAN Daten zu erstellen.
6. Folge der Anleitung und kopiere das config File auf die SD Card in das boot Volume
7. stecke die SD Karte in den Raspi8.Starte den raspi und gib die IP Adresse (DHCP) im Browser ein (user pi-star ; pass: raspberry)
9. Aktiviere dein gewünschtes digitales Netzwerk
10.Wenn du ein OLED Display hast muss es noch aktiviert werden.
der Bausatz aus China brachte noch eine URL zur Einrichtung mit. Alle wichtigen Einstellungen sind hier zu finden.

Im Video wird eigentlich alles wichtige erklärt.
Das DMR Gerät selber benötigt auch einen Eintrag im Codeplug.
Color Code=1; Grouplist = deine RX List sonst hört man ja nix;

Wenn dann alles erledigt ist kann man sich auf der Brandmeister Seite im Self Care Bereich um die Config des Hotspots kümmern. Gehen sollte es mit den Minimaleinstellungen der TGs

Übrigens man kann den “hotspot” auch fernsteuern wenn man den API Key aus dem BM Einstellungen in den hotspot kopiert.
https://brandmeister.network/?page=profile&action=edit
in im Pi-Star http://lokale-IP/admin/expert/fulledit_bmapikey.php
Damit hat das BM System auf den Hotspot wechselseitigen Zugriff.

Wenn jetzt noch Fragezeichen im Kopf sind empfehle ich das BM Handbuch. Damit werden die Begrifflichkeiten voll beschrieben. Gerne helfe ich aber auch weiter wenn es nötig wird.

Unterstützen könnt ihr den Betrieb der Seite gerne über die Amazon Links beim Kauf der Produkte. Viel Spaß !73