Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. McCavity

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 35
    • Best 1
    • Groups 1

    McCavity

    @McCavity

    Starter

    2
    Reputation
    13
    Profile views
    35
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    McCavity Follow
    Starter

    Best posts made by McCavity

    • Boolsche Werte (true / false) von InfluxDB2 in Grafana 2023

      Erstmal ein frohes neues Jahr 2023 an die Forengemeinde!

      Re: Grafana true/false anzeigen

      Ich folge gerade mehr oder weniger dem sehr nützlichen Tutorial von @EddyD-s-SmartHome auf YouTube. Mehr oder weniger deshalb, weil ich völlig andere Sensordaten nutze. Genauer gesagt baue ich mir ein Dashboard für unseren Stromverbrauch, den ich mit dem PowerOpti und der Powerfox-App vom Stromzähler erfasse und dann mit dem PowerFox-Adapter in den IoBroker ziehe. Die Datenpunkte werden dabei dann ganz normal in der InfluxDB geloggt. Das ist der im Video gezeigten Heizungsanlage einigermaßen ähnlich, aber es gibt halt auch deutliche Unterschiede.

      Dabei stieß ich auf das Problem, daß ich zwar auch einen Datenpunkt habe, der Wahrheitswerte liefert, aber nicht, wie im Video gezeigt, 0 und 1, sondern "true" oder "false". Bei der Suche, wie ich dafür das Beispiel auf dem Video anpassen muß, bin ich auf den o.g. Thread gestoßen, der aber ja noch für InfluxDB v1.x ist. Bei dem Gedanken, da jetzt noch extra neue Datenpunkte und / oder Scripte anlegen zu müssen, ist mir dann doch etwas blümerant geworden, weil ich doch einfache Lösungen bevorzuge 😉 Allerdings setze ich mittlerweile InfluxDB v2.x ein (wie auch im Video) und die nutzt ja bekanntermaßen Flux anstelle von InfluxQL - was Segen und Fluch zugleich ist; Fluch, weil das Zeug echt haarig ist, aber Segen, weil sich damit ein paar nette "Schweinereien" anstellen lassen, die das Problem sehr elegant lösen und damit o.G. Thread quasi überflüssig machen, wenn man InfluxDB v2.x im Einsatz hat:

      Ich muß jetzt keinen Umweg mehr über irgendwelche Scripts und/oder Integer-Datenpunkte nehmen, sondern kann jetzt ganz bequem die true / false Werte aus dem IoBroker Datenpunkt einfach direkt in die InfluxDB schreiben. Wenn ich sie dann in Grafana anzeigen lassen möchte, dann geht das jetzt ganz elegant mit der Flux-Funktion "toInt()", die mir die boolschen Werte in die von Grafana benötigten 0 / 1 umwandelt. So sieht das gesamte Panel momentan aus (wie gesagt, ist work-in-progress, also noch nicht viel da ;-)):
      f268d595-6ac0-4e3d-b988-a7b5c5705d30-image.png

      Genau geht es um das Panel "Datenlieferung". Diese Abfrage nutze ich dabei, um die Werte aus der InfluxDB zu lesen:

      from(bucket: "IoBroker")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "DatenVerspätet")
        |> filter(fn: (r) => r["_field"] == "value")
        |> toInt()
      

      Der Rest ist ganz genauso wie im Video, nur daß ich statt "AUS / AN" "Pünktlich." oder "Verspätet!" in das Panel schreibe. Vielleicht hilft's ja jemandem. Nochmal in aller Deutlichkeit: dieser Weg funktioniert natürlich nur, wenn man InfluxDB v2.x nutzt; bei den älteren Versionen geht das so nicht.

      posted in Off Topic
      M
      McCavity

    Latest posts made by McCavity

    • RE: Test paperless-ngx Adapter

      @ben1983 Heute morgen war's in Beta - hab's mal installiert und mit dem Token probiert, das funktioniert auf jeden Fall schonmal ganz hervorragend! Danke Dir nochmal für die schnelle Umsetzung!

      posted in Tester
      M
      McCavity
    • RE: Test paperless-ngx Adapter

      @ben1983 said in Test paperless-ngx Adapter:

      @mccavity Also ich konnte mir bis dato nur die Geschichte mit dem Token ansehen.
      Dies habe ich implementiert.
      Die Verwendung von einem Token kann nur aktiviert werden.
      Hier werden dann Benutzername und Passwort ausgeblendet.

      "bis dato"?!? Du bist gut, das ging ja schneller als die Polizei erlaubt 🙂 Nee, ganz im Ernst, da kann sich manch anderer - auch große Unternehmen - eine dicke Scheibe von abschneiden - Hut ab! Vielen Dank!

      Was mein Eingansproblem angeht ("no active connection...") - das hat sich eben gerade gelöst! Das war mal wieder ein klassisches PEBKAC (Problem Exists Between Keyboard And Chair) - das Problem saß zwischen Tastatur und Stuhl. Ich Heipoei hatte - warum auch immer - in der Adapter-Konfiguration bei URL / IP das "http://" Schema mit eingetragen. Kaum hatte ich das entfernt, flutscht der Adapter wieder - also da brauchst Du nicht weiter zu suchen, das war meine eigene Blödheit... Kopp -> Tisch. Vielleicht wäre es sinnvoll, die Benutzereingaben dahingehend zu überprüfen, ob die auch sinnvoll sind, oder ob der McCavity da wieder Murks eingetragen hat... 😉

      Was die Custom Header angeht, mach Dir da keinen Streß... das bräuchte ich eh nur, wenn ich von hinten durch die Brust ins Auge schießen wollte und den Umweg über Cloudflare gehen - aber da ja jetzt wieder die Verbindung im LAN einwandfrei funktioniert, wäre das wirklich mit Kanonen auf Spatzen geballert... braucht man wahrscheinlich eh nie.

      Des weiteren, habe ich die UN D/ Oder Suche implementiert (sollte nun auch richtig funktionieren) und sowohl die Eingabe vonzu suchenden Queries, als auch das Ausschließen von Queries mit rein genommen.

      Cool! Damit habe ich mich noch gar nicht auseinandergesetzt, schaue ich mir aber bestimmt auch mal an!

      Die aktuelle Version, ist die 0.4.1

      Ich sehe die noch nicht (auch nicht nach "Adapter auf Updates überprüfen") - ist die schon im "stable" Zweig oder muß ich da auf Beta umschalten (oder gar direkt von GitHub laden)?

      posted in Tester
      M
      McCavity
    • RE: Test paperless-ngx Adapter

      @ben1983 said in Test paperless-ngx Adapter:

      @mccavity mit dem Token muss ich mir bei Gelegenheit mal ansehen.
      Mit dem Custom Header:
      Was meinst du damit?
      Wenn du eine Adresse angibst, anstelle der ip, dann sollte diese auch abgerufen werden.

      Nein, Custom Header werden direkt in den HTTP-Header des Requests eingefügt, wenn der gesendet wird. Das kann alles mögliche sein, was über die Standard-Header hinausgeht. Typische Standard-Header sind zum Beispiel „Host:“, „Accept:“ oder „User-Agent:“. Weitere Header werden zum Beispiel von Anwendungen hinzugefügt, wie zum Beispiel Cookies oder Session IDs. Diese sind aber Applikationsspezifisch und unterliegen der Definition des Entwicklers der Applikation.

      Cloudflare zum Beispiel nutzt Custom Header zur Authentisierung. Damit kann sich ein Client gegenüber Cloudflare authentisieren, ohne über eine Login-Seite gehen zu müssen - ähnlich wie das Token bei Paperless NGX, aber ein anderer Transportmechanismus wahrscheinlich (Body vs. Header).

      Diese Header bestehen üblicherweise aus einem Key (einem Namen, siehe oben, wie „User-Agent:“) und einem Wert; bei „User-Agent:“ steht da zum Beispiel in der Regel die Version des verwendeten Browsers drin. Cloudflare zum Beispiel nutzt für die Authentisierung die Header „CF-Access-Client-Id:“ und „CF-Access-Client-Secret:“.

      Im Prinzip brauchst Du, um den Adapter dafür fit zu machen, nur einen Button oder Link „Custom Header hinzufügen“, der zwei zusätzliche Texteingabefelder in das Formular einfügt, für den Key und den dazugehörigen Wert. Alle Header, die ein Benutzer des Adapters auf diese Weise anlegt, werden dann einfach bei jedem Request in Richtung Paperless NGX in den Request Header eingefügt.

      posted in Tester
      M
      McCavity
    • RE: Test paperless-ngx Adapter

      Jetzt habe ich doch eine technische Frage und - daraus resultierend - (wahrscheinlich) einen Feature Request:

      ich stehe gerade vor dem Problem, daß ich mir wohl den Adapter zerschossen habe in dem Sinne, daß er sich nicht mehr mit meiner Paperless NGX Instanz verbinden kann. Ich nutze Paperless NGX erst seit einer guten Woche, bin völlig begeistert davon und habe mir natürlich auch gleich den Adapter installiert, damit ich mir per Telegram anzügliche Nachrichten schicken lassen kann, wenn sich die Dokumente in meiner Inbox stauen.

      Dann bin ich auf die glorreiche Idee gekommen, das Archiv via Internet zugänglich zu machen, um, egal, wo ich gerade bin, die Vertragsdaten der Feuerversicherung meiner Zigarren abrufen zu können - Spaß beiseite, aber in etwa darum geht es mir. Natürlich habe ich das entsprechend gesichert, d.h. ich nutze mein Cloudflare Zero Trust Konstrukt, um über einen offiziellen Hostnamen mit SSL Verschlüsselung (und vorheriger Zugangskontrolle) darauf zugreifen zu können.

      Auch das habe ich recht gut hingekriegt, ich kann jetzt sowohl über den FQDN als auch im Heimnetzwerk über die IP mit der Paperless-Instanz arbeiten - sogar die PaperParrot App für IOS habe ich nach ein wenig Anlaufschwierigkeiten (halb) zum Fliegen gebracht: wenn ich im Cloudflare VPN bin, funktioniert die App, ohne leider (noch) nicht - aber das ist eine andere Baustelle. Der Punkt ist: eigentlich[TM] sieht alles so weit gut aus - bis auf den IoBroker Adapter.

      Der hat nämlich, als ich angefangen habe, die Instanz in Cloudflare verfügbar zu machen, irgendwann die Arbeit eingestellt. Wann genau weiß ich nicht, da müßte ich vielleicht nochmal in den Logs kramen - aber zum jetzigen Zeitpunkt funktioniert der Adapter leider nicht mehr. Im Log steht nur

      2025-03-02 09:28:51.846 - error: paperless-ngx.0 (969574) No active connection to paperless API
      

      und der Webserver Container der Paperless NGX Instanz melde zeitgleich

      [2025-03-02 09:28:51,840] [WARNING] [django.request] Unauthorized: /api/documents/
      

      Dabei habe ich (hoffentlich) eigentlich alle benötigten Hosts in der Container config freigegeben, hier der Auszug aus meiner docker-compose.yml:

           PAPERLESS_CSRF_TRUSTED_ORIGINS: 'https://archiv.$MY_DOMAIN.de,http://192.168.178.168,http://192.168.178.152'
           PAPERLESS_ALLOWED_HOSTS: 'archiv.$MY_DOMAIN.de,192.168.178.168,192.168.178.152'
           PAPERLESS_CORS_ALLOWED_HOSTS: 'https://archiv.$MY_DOMAIN.de,http://192.168.178.168,http://192.168.178.152'
      

      Die erste IP ist dabei der Paperless NGX Container selbst, die zweite ist die IoBroker Instanz (die eigentlich gar nicht nötig sein dürfte, weil Iobroker in dem Falle ja als Client agiert). Ich habe PAPERLESS_URL nicht verwendet, weil ich gesehen habe, daß die Parameter teilweise eine netloc haben wollen (also mit Schema) und teilweise eben nicht (reiner Hostname / IP). Das funktioniert auch, der Container läuft wie gewünscht und ich kann mit der WebApp sowohl über FQDN als auch IP Adresse zugreifen und - mit der Einschränkung, daß ich im Cloudflare VPN sein muß - auch die IOS App.

      Nur eben nicht der IoBroker.paperless-ngx Adapter. Kann mir da jemand sagen, was ich eventuell noch übersehen habe? Eigentlich[TM] dürfte das ja mit Cloudflare nichts zu tun haben, da ich ja rein im lokalen Netz bleibe zwischen IoBroker und Paperless - aber irgendwo hakt's halt noch. Die Logfiles geben da leider auch keine weiteren Aufschlüssen, nichtmal im "Silly" Modus. 😞 Gibt es da noch irgendwo, wo ich nachschauen könnte? Ich bin kurz davor, auf meiner ProxMox Kiste tcpdump anzuschmeißen, um zu gucken, was die beiden Hosts reden...

      In dem Sinne hätte ich dann auch noch einen Feature Request, der - vielleicht - auch hier helfen könnte: wäre es vielleicht möglich, den Adapter dahingehend zu erweitern, daß er neben der Benutzername / Paßwort Authentisierung auch die andere von Paperless NGX erlaubten Methode, Token, noch abdeckt? Ich arbeite bei solchen automatisierten API Verbindungen gerne mit Token anstelle von Benutzername und Paßwort. In dem Zuge wäre dann das Sahnehäubchen, wenn man auch "custom header" konfigurieren könnte, die gesendet werden, dann könnte ich ggf. auch den Weg "über außen", d.h. über FQDN / Cloudflare gehen - aber das wäre dann wirklich nur das Sahnehäubchen oben drauf, wenn mir wirklich danach wäre, den Traffic zwischen IoBroker und Paperless NGX auch noch zu verschlüsseln - ja, da ist die aktuelle Empfehlung, alles zu verschlüsseln, aber im Heimnetzwerk ist dann vielleicht doch schon etwas "over the top"... 🙂

      Wie dem auch sei: ganz vielen Dank für den Adapter und die viele Arbeit die da reinfließt - und für jegliche Hilfe, die den Adapter für mich wieder flott macht 😉

      posted in Tester
      M
      McCavity
    • RE: Test paperless-ngx Adapter

      @android51 Da kannst Du vorbeugen, wenn Du Dir von vornherein eine saubere Verzeichnis- und Dateinamenstruktur überlegst. Paperless speichert die Dokumente einfach nur als Dateien im Verzeichnispfad ab, d.h., wenn Du da schon eine gute Ordnerstruktur hast, kannst Du einfach den gesamten Verzeichnisbaum nehmen und ggf. in ein anderes System übertragen - oder sogar ganz ohne System nutzen.

      Anregungen dazu gibt es zum Beispiel bei Digitalisierung mit Kopf oder bei Digital Cleaning (mit einer Fortsetzung hier).

      Mit beiden habe ich nichts zu tun, die verkaufen m.W. auch Kurse zu dem Thema, habe ich aber weder selbst genutzt, noch kenne jemanden, der das nutzt - aber auch die öffentlich verfügbaren Anleitungen da sind schon sehr hilf- und umfangreich.

      posted in Tester
      M
      McCavity
    • RE: Test paperless-ngx Adapter

      @android51 said in Test paperless-ngx Adapter:

      mal ne kurze Frage... Ich bin heute über paperless-ngx gestolpert und habe auf meinem RaspberryPi 4 iobroker, zigbee2mqtt und einen Kamera-Server laufen. Alles läuft bisher wie geschmiert.
      Kann ich paperless-ngx noch installieren oder geht der Raspi dann in die Knie? Wie sind eure Erfahrungen?

      Naja, hängt von mehreren Parametern ab... wenn Deine Paperless NGX Instanz in der Regel nicht viel tut und fast ausschließlich zum Anschauen von Dokumenten verwendet wird, sollte das sicherlich gehen. Anders sieht es aber aus, wenn Du Dokumente hochlädst. Wenn es nur ein oder zwei oder so sind ist das wahrscheinlich auch noch kein Problem - aber wenn Du anfängst, Dein Gesamtes Archiv mit -zig oder gar hunderten oder tausenden Dokumenten da reinzuwerfen, wird der Pi4 wahrscheinlich doch etwas an seine Grenzen stoßen, selbst, wenn Du die 8GB Variante hast.

      An meinem Beispiel: Bei mir läuft Paperless NDX als Proxmox Container (LXC) mit 3 CPUs und (anfangs) 6GB RAM. Darin läuft das Docker-Image. Wenn ich jetzt einen ganzen Stapel Dokumente (so um die 10, 12 gleichzeitig, habe ich bisher getestet) in den consume Ordner werfe, dann ist diese Konstellation schon ziemlich in die Knie gegangen. Memory war zu 100% voll und das Ding hat schon reichlich angefangen zu swappen. Nachdem ich den LXC jetzt nochmal mit 6GB Mem auf insgesamt 12GB aufgestockt habe, werden auch größere Dokumentenstapel wieder recht zügig verarbeitet.

      Meine Antwort auf Deine Frage ist also ein eindeutiges "ja, aber" 🙂

      posted in Tester
      M
      McCavity
    • RE: Skript zur Visualisierung von Sendungen (Parcel-Adapter)

      Noch eine Ergänzung zu oben: wenn man seine Pakete auf der Hermes Webseite ordentlich benamt, dann ist das "name"-Feld im Array auch nicht leer. Das passiert also nur, solange man bei Hermes keinen Namen für seine Pakete vergeben hat. Trotzdem vielleicht eine gute Idee, das abzufangen und durch einen Hinweis "Kein Name vergeben" oder so etwas zu ersetzen.

      posted in JavaScript
      M
      McCavity
    • RE: Skript zur Visualisierung von Sendungen (Parcel-Adapter)

      @nashra said in Skript zur Visualisierung von Sendungen (Parcel-Adapter):

      Moin, bekomme beim Aufruf folgende Warnung

      javascript.0	10:31:20.180	info	Start JavaScript script.js.Allerlei.Parcel-Ro75 (Javascript/js)
      javascript.0	10:31:20.192	warn	at ParcelListGenerator (script.js.Allerlei.Parcel-Ro75:127:5)
      javascript.0	10:31:20.192	warn	at script.js.Allerlei.Parcel-Ro75:206:1
      javascript.0	10:31:20.192	warn	at script.js.Allerlei.Parcel-Ro75:211:3
      javascript.0	10:31:20.192	info	script.js.Allerlei.Parcel-Ro75: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      

      Ich muß noch mal auf dieses Thema zurückkommen, da ich ein ganz ähnliches Verhalten hatte, mit den gleichen nicht existierenden Zeilennummern - aber etwas anderer Fehlermeldung. Bei mir gab es

      javascript.0	21:38:13.649	info	Stopping script script.js.visualisierungen.paketverfolgung
      javascript.0	21:38:13.759	info	Start JavaScript script.js.visualisierungen.paketverfolgung (Javascript/js)
      javascript.0	21:38:13.781	error	script.js.visualisierungen.paketverfolgung: TypeError: Cannot read properties of undefined (reading 'length')
      javascript.0	21:38:13.781	error	at TextNorm (script.js.visualisierungen.paketverfolgung:50:35)
      javascript.0	21:38:13.781	error	at ParcelListGenerator (script.js.visualisierungen.paketverfolgung:79:38)
      javascript.0	21:38:13.781	error	at script.js.visualisierungen.paketverfolgung:206:1
      javascript.0	21:38:13.781	error	at script.js.visualisierungen.paketverfolgung:212:3
      

      Wie man sieht, lief das Script danach nicht (es wird nichts registriert), Datenpunkte wurden zwar angelegt, ioBroker.parcel hat auch Daten, aber die Script-Datenpunkte blieben leer (logisch, wenn das Script gar nicht durchläuft).

      Nach etwas rumprobieren und auf-die-Konsole loggen, fand ich heraus, daß mein Problem Hermes war, bei denen das „Name“ Feld wohl auch „undefined“ sein kann. Ich habe daher ab Zeile 77 einen kleinen if-Block eingefügt, der das Array-Feld mit einem gültigen String befüllt, wenn es vorher „undefined“ war:

      if (!arr[i].name) {
          arr[i].name = 'undefined!‘;
      } 
      

      Das „{1}“ da im Codeblock Zeile 4 gehört nicht dazu, keine Ahnung, warum das hier angezeigt wird o.O

      Mit dieser Änderung lief das Script jetzt bei mir klaglos durch:
      IMG_7157.jpeg

      Hier sieht man dann auch die durch meinen Codeblock eingefügten Strings bei Hermes:
      IMG_7158.jpeg

      posted in JavaScript
      M
      McCavity
    • RE: AV Anlage mittels IoBroker steuern?

      @mickemup said in AV Anlage mittels IoBroker steuern?:

      Ich hatte sowas früher mal mit dem logitech Harmony.
      Auch dort musste ich "Delays" einbauen.

      Ich denke das geht nicht gross anders, als deine manuellen Manipulationen im Blockly nachzustellen und dann mit "try and error" die richtigen Verzögerungen auszuwählen.

      @homoran said in AV Anlage mittels IoBroker steuern?:

      ich mache das auch mit Harmony, zusätzlich noch über den Denon Adapter.

      Vorsorglich stelle ich immer beim Abschalten die Lautstärke auf einen erträglichen Level und erst beim Anschalten wieder am Ende der Szene auf die finale Lautstärke

      Danke erstmal für die Antworten, dann scheine ich ja schonmal auf dem richtigen Weg zu sein. Den Denon Adapter benutze ich auch für den Receiver, Logitech Harmony habe ich leider nicht - wollte ich mir immer kaufen, war dann aber doch immer zu geizig 😉 und wenn's direkt mit dem Denon Adapter auch geht, ist das ja auch in Ordnung.

      Ich habe jetzt die Einschaltroutine für den Receiver mal dahingehend abgeändert, daß das Script nur dann, wenn der Receiver ausgeschaltet ist den Einschaltbefehl absetzt (ansonsten wir der Part übersprungen) und dann 5 Sekunden (für den Moment) Pause macht, damit sich der Verstärker einpendeln kann. Ob das reicht, muß ich noch testen und ggf. fein einstellen. Erst danach werden Programm und Lautstärke. Der Hinweis auf die "erträgliche Latstärke" gefällt mir aber auch gut; das werde ich glaube ich auch noch einbauen.

      posted in ioBroker Allgemein
      M
      McCavity
    • RE: AV Anlage mittels IoBroker steuern?

      @arteck said in VA Anlage mittels IoBroker steuern?:

      @mccavity was ist eine VA Anlage ??

      Das, was unten drunter im Text steht: eine AV Anlage... nur mit verbuchselten Wechstaben.

      posted in ioBroker Allgemein
      M
      McCavity
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo