ich habe mit ein Starterset von HomePilot geholt, dies beinhaltet 2x RolloTron Classic Smart (10142345) und 1x Gateway premium (15001001).
Leider bekomme ich den Adapter nicht zum laufen und befürchte, dass dieses Gateway garnicht unterstützt wird?
Mit google und der Forensuche bin ich leider 0 fündig geworden..
Ist der Gateway kompatibel oder gibt es vielleicht eine alternative Idee wie dieser integriert werden kann?
Ich bekomme auch nur Unreach = true im Adapter. IP ist fest vergeben durch den Router und stimmt auch mit dem Adapter überein, ebenso mit der App.
Versucht habe ich auch, IP leer lassen, den Gateway in der App umbenennen (sodass homepilot.local auch funktioniert - hieß vorher hpgateway), Passwort setzen, Passwortschutz entfernen und ohne Passwort testen, leider alles ohne Erfolg.
LÖSUNGSANSATZ für das Problem mit den nicht gefüllten/erstellten Datenpunkten:
Moin Zusammen
ich habe eine reproduzierbare Lösung entwickelt für (hoffentlich alle) diejenigen, bei denen der Adapter bei mehr als einem Drucker mit "Status/Drucker_druckt" Probleme bereitet. Ich habe die Problemursache / das Problemverhalten jetzt zwei Tage lang ergründet und ausgetestet und möchte mit euch meinen "Workaround" teilen.
Zudem ist gibt dieser Ansatz vielleicht auch einen Einblick in die Ursache des Problems sowie eine Möglichkeit dies in zukünftigen Versionen zu beheben.
Anscheinend verhindert die nicht über den Adapter erfolgte Anlage und Zuweisung des Datenpunktes zum Druckernamen (bei mehr als einem Drucker) ebenso die Erstellung aller weiteren Datenpunkte - warum dies nur beim ersten Drucker klappt, warum selbsterstellte Datenpunkte nicht anerkannt werden und warum dies anscheinend nicht bei jedem Nutzer auftritt bleibt mir ein Rätsel.
Wen es interessiert wie ich das Problem gelöst habe bzw. die Problembeschreibung findet ihr hier im Spoiler:
Kurz zum bei mir auftretenden Problem.
Bei meinen zwei Druckern stiegt der Adapter mit dem oben beschriebenen "val = null" Problem aus. Der Quickfix mit den selbstständig angelegten Datenpunkten in "Status/Drucker_druckt" brachte den Adapter zwar zum laufen jedoch wurden die relevanten Daten für die/den betroffenen Drucker nicht erstellt. Die Daten vom 1. erkannten Drucker, bei dem auch der "Status/Drucker_druckt" vom Adapter hinzugefügt wurde erstellte die Datensätze unter "Printjob" problemlos.
Dabei fiel mir auf, dass die selbstständig erstellen Datensätze von "admin.0" aktualisiert wurden (einmalig) während der vom Adapter erstellte und zugewiesene Datenpunkt von "repetierserver.0/admin" ständig aktualisiert wurde. Etliche Versuche diesen Datensatz vom Adapter erkennbar / beschreibbar zu machen schlugen fehl.
Verschiedene Kombinationen von aktivieren und deaktivieren der Drucker in Kombination mit Neuinstallation des Adapters / der Instanzen brachte alles keinen Erfolg. Ebenso nicht mit neu hinzufügen von Druckern.
Schlussendlich erinnerte ich mich an ein Problem mit dem anderen Repetieradapter, dass die Namensreihenfolge alphabetisch erfolgen müsse, wobei bei mir die alphabetische Reihenfolge genau umgedreht war wie die Reihenfolge mit der die Drucker im Adapter aufgeführt waren. Auch dies war eine Sackgasse.
Schlussendlich löschte ich den funktionierenden Drucker im Repetierserver Interface, sodass der nicht funktionierende Drucker der erste und einzige Drucker war und hoffte auf eine Besserung, da anscheinend ja nur ein Drucker ordentlich erkannt wurde. Das funktionierte ebenso nicht. Der Datenpunkt wurde nicht zu den bereits bestehenden Datenpunkten hinzugefügt und ich dachte vielleicht gibt es ein Problem mit dem Namen.
Ich löschte beide Drucker, erstellte zwei neue Drucker mit dem Namen "1" und "2" in der korrekten Reihenfolge und versuchte es erneut - gleiches Ergebnis: Drucker 1 funktionierte - Drucker 2 nicht, Datenpunkt "Status/Drucker_druckt" wurde nicht angelegt und dementsprechend auch nicht die entsprechenden "Printjob" Datenpunkte. Mir fiel dabei schon des öfteren auf, dass die Datenpunkte auch nach dem löschen der Drucker erhalten blieben. Zudem, dass manche erneut erstellten Drucker auf einmal eine laufende Nummer im Namen erhielten.
Neuer Ansatz, wenn es möglich ist für jeden Druckernamen einzeln (Drucker für Drucker) den Datenpunkt vom Adapter generieren zu lassen, sodass diese bereits vorhanden sind und anschließend die Drucker unter gleichem Namen erneut in Repetier anzulegen, könnte eine Integration aller Drucker klappen.
Kurz gefasst, dies hat nach mehreren Anläufen funktioniert.
Die folgende Anleitung ist bereits so gehalten, dass ihr voraussichtlich kein Problem haben solltet mit der "Laufenden Nummer" im Druckernamen.
Hier die Schritt für Schritt Anleitung:
RS bedeutet folgendes im Repetierserver Interface IO bedeutet im ioBroker Interface OPTIONAL bedeutet: empfohlen zur Prüfung ob alles geklappt hat
SCHRITT 0 EMPFEHLUNG/WARNUNG
Ich empfehle euch die Schritte der Reihenfolge nach auszuführen und keinen zu überspringen/wegzulassen. Besonders nicht die Neustarts!
Zudem ist es wichtig die Namen der jeweiligen Drucker gleich zu schreiben und auf Groß- und Kleinschreibung zu achten.
Ebenso empfehle ich euch im RS alle Daten eurer Drucker zu notieren/speichern ( EEPROM, CustomGCode, Verbindungseinstellungen, etc. ) außerdem werden ALLE für den jeweiligen Drucker hochgeladenen GCodes gelöscht - also auch hier bitte sichern was ihr noch braucht! ( Dies betrifft nicht die in "Projekte" hochgeladenen Dateien ).
Dies verhindert Frust und macht die Wiedereinbindung später schneller, besonders die Verbindungsdaten direkt einzutragen ( Baudrate, RTS, DTR, Buffer & PingPong Modus ) statt automatischer Erkennung beschleunigt die ganze Sache enorm! Ihr braucht auch nicht alle Druckerwerte direkt korrekt Einpflegen sondern könnt dies wenn der Adapter endgültig läuft nachholen.
SCHRITT 1
Im IOalle Datenpunkte der repetierserver.x Instanz löschen, die Instanz entfernen und den Adapter löschen.
Im RS alle Drucker löschen ( s. SCHRITT 0 )
Anschließend IO & RS neustarten.
SCHRITT 2
Im RS ersten Drucker anlegen (es darf nur ein Drucker im RS sein!). Drucker deaktivieren! ( RSHome - Rädchen oben-rechts am Drucker - Deaktivieren ).
SCHRITT 3
Im IO repetierserver Adapter installieren ( wenn nicht bereits installiert ).
repetierserver.0 Instanz anlegen.
In der Instanz: IP, Port und API Key eingeben.
Instanz starten ( Drucker muss deaktiviert sein um Probleme zu vermeiden ).
-kurz warten- ( delay 5000ms )
Im RS Drucker aktivieren.
Im IO sollten die Werte nun alle erstellt, angezeigt und aktualisiert werden.
( relevant sind hier "Status/Drucker_druckt" und alle Werte aus dem Ordner "PrintJob" )
Falls nicht:
Im IO LOG prüfen ob der "val = null" Fehler auftritt.
( dann -> Drucker erneut deaktivieren - aktivieren )
SCHRITT 4
Im IO Instanz stoppen.
Im RS Drucker löschen.
( NICHT DIE DATENPUNKTE IM IO LÖSCHEN! )
Im RS zweiten Drucker installieren.
Zweiten Drucker deaktivieren ( nicht vergessen - es darf aktuell nur ein Drucker insgesamt imRSvorhanden sein ).
Im IO Instanz starten ( Drucker muss deaktiviert sein um Probleme zu vermeiden ). -kurz warten-
Im RS Drucker aktivieren. -kurz warten-
Datenpunkte prüfen.
( relevant sind auch hier wieder "Status/Drucker_druckt" und alle Werte aus dem Ordner "PrintJob", ob der Drucker unter dem richten Namen angelegt wurde sowie unter "info" der korrekte Name eingetragen ist )
SCHRITT 5
Wiederhole "SCHRITT 4" für alle Drucker die du in die Instanz einfügen willst.
SCHRITT 6
Am besten erste den vollständigen S
Im IO Instanz stoppen.
Im RSALLE Drucker löschen ( es sollte sich nach dem vorherigen Schritt sowieso nur ein Drucker im RS befinden - es darf anschließend KEIN Drucker mehr im RS enthalten sein ).
RS neustarten. ( WICHTIG! )
Im RS bei ( ausgeschalteter Instanz ) alle Drucker wieder anlegen und alle deaktivieren ( Die Druckernamen müssen dabei identisch zu den vorher angelegten sein - auch Groß- & Kleinschreibung ).
OPTIONAL
Per SSH auf den RepetierServer einwählen:
cd /var/lib/Repetier-Server/printer/
ls
hier sollte alle Drucker als Ordner mit den korrekten Namen aufgeführt sein.
Falls nicht:
Entweder alles von SCHRITT 0 an nochmal durchführen. -oder-
versuchen mit folgenden Befehlen die Namen der Drucker zu ändern:
Im IO Instanz starten.
Im RS dann alle Drucker aktivieren.
SCHRITT 7
Abschließend im IO prüfen ob:
unter "info/activeprinter" alle Drucker aufgelistet sind und die Namen mit den ursprünglichen übereinstimmen.
keine neuen Druckernamen aufgetaucht sind.
unter jedem Drucker die Datenpunkte "Status/Drucker_druckt" sowie alle Datenpunkte unter "PrintJob/" aktualisiert werden ( sollten alle im unregelmäßigen Sekundentakt grün aufleuchten - in der Statusansicht sollte auch überall bei "geändert von""repetierserver.0/admin" stehen ).
das LOG keine Fehler mehr auswirft.
Herzlichen Glückwunsch!
Der Adapter sollte nun laufen
Hier noch ein Bild wie es aussehen sollte/könnte:
Ich hoffe wirklich, dass dieser Workaround und meine investierte Zeit mehr als nur mir Abhilfe schaffen.
Es wäre schön ein wenig zurückzugeben zu können von dem was ich bisher aus diesem Forum an Lösungen und Erklärungen, durch die Zeit und Mühe der anderen Teilnehmer hier, mitgenommen habe.
Ich wünsche euch viel Erfolg und einen guten Start in 2021.
die einzige Überschneidung die mir bisher auffällt ist der Raspberry Pi 4.
Ich bin allerdings nicht umgestiegen sondern direkt mit dem 4er eingestiegen. Iobroker hatte ich auch mit einem komplett frischen System installiert (kein vorgefertigtes Image) - ist aber schon länger her.
Zudem wollte ich nochmal anmerken, ich hatte das exakte Problem schon vor ca. einem halben Jahr - welches ich irgendwie gelöst hatte - bis zum apt update / upgrade und dem aktualisieren auf node.js 12.20.0
Leider weiß ich nicht mehr welche node.js Version vor den Problemen funktionierte.
Evtl. war es bei den anderen Glücklichen während des Umstiegs von RPi 3 auf 4 ja auch zu einer Aktualisierung gekommen, die evtl. etwas bewirkt hat? Das ist natürlich nur geraten aber das ist für mich bisher das einzige was sich bei allen überschneiden könnte.
Hier eine kleine Trostlösung für die Pflanzefreunde:
Ich habe eine für mich schöne alternative für meine miFlora/VegTrug Sensoren entdeckt, die mir sogar besser gefällt als die Einbindung über den BLE Adapter.
Es gibt einen tollen "miFlora to MQTT Daemon" der sich wunderbar einfach installieren und anpassen lässt. Dort lässt sich sogar der Batteriestand der Sensoren abfragen und auch das Abfrageintervall.
Das Skript könnt ihr einfach auf dem Raspberry installieren und es funktioniert bei mir reibungslos. Ich habe es auf meinem RPi mit PiHole isntalliert, ob es Konflikte mit einer ioBroker Installation gibt weiß ich leider nicht.
total used free shared buff/cache available
Mem: 3,7Gi 1,3Gi 1,9Gi 8,0Mi 494Mi 2,7Gi
Swap: 99Mi 0B 99Mi
Iobroker Log nach start von BLE wirft zudem regelmäßig dies aus:
cloud.0 2021-01-03 22:22:09.808 error (888) Error while connecting to cloud: Error: websocket error
tail -f /var/log/messages (ohne BLE):
pi@piserviant:~ $ tail -f /var/log/messages
Jan 3 22:17:13 piserviant kernel: [ 18.987581] Bluetooth: L2CAP socket layer initialized
Jan 3 22:17:13 piserviant kernel: [ 18.987609] Bluetooth: SCO socket layer initialized
Jan 3 22:17:13 piserviant kernel: [ 18.996374] Bluetooth: HCI UART driver ver 2.3
Jan 3 22:17:13 piserviant kernel: [ 18.996391] Bluetooth: HCI UART protocol H4 registered
Jan 3 22:17:13 piserviant kernel: [ 18.996462] Bluetooth: HCI UART protocol Three-wire (H5) registered
Jan 3 22:17:13 piserviant kernel: [ 18.996729] Bluetooth: HCI UART protocol Broadcom registered
Jan 3 22:17:14 piserviant kernel: [ 19.286553] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Jan 3 22:17:14 piserviant kernel: [ 19.286560] Bluetooth: BNEP filters: protocol multicast
Jan 3 22:17:14 piserviant kernel: [ 19.286575] Bluetooth: BNEP socket layer initialized
Jan 3 22:17:15 piserviant kernel: [ 20.122520] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
(mit BLE):
pi@piserviant:~ $ tail -f /var/log/messages
Jan 3 22:17:13 piserviant kernel: [ 18.987581] Bluetooth: L2CAP socket layer initialized
Jan 3 22:17:13 piserviant kernel: [ 18.987609] Bluetooth: SCO socket layer initialized
Jan 3 22:17:13 piserviant kernel: [ 18.996374] Bluetooth: HCI UART driver ver 2.3
Jan 3 22:17:13 piserviant kernel: [ 18.996391] Bluetooth: HCI UART protocol H4 registered
Jan 3 22:17:13 piserviant kernel: [ 18.996462] Bluetooth: HCI UART protocol Three-wire (H5) registered
Jan 3 22:17:13 piserviant kernel: [ 18.996729] Bluetooth: HCI UART protocol Broadcom registered
Jan 3 22:17:14 piserviant kernel: [ 19.286553] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Jan 3 22:17:14 piserviant kernel: [ 19.286560] Bluetooth: BNEP filters: protocol multicast
Jan 3 22:17:14 piserviant kernel: [ 19.286575] Bluetooth: BNEP socket layer initialized
Jan 3 22:17:15 piserviant kernel: [ 20.122520] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
Und hier noch (mit BLE):
pi@piserviant:~ $ who -r
Runlevel 3 2021-01-03 22:17
pi@piserviant:~ $ sudo apt update
OK:1 http://archive.raspberrypi.org/debian buster InRelease
OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease
Ign:3 https://deb.nodesource.com/node_12.x buster InRelease
Fehl:4 https://deb.nodesource.com/node_12.x buster Release
Could not wait for server fd - select (11: Die Ressource ist zur Zeit nicht verfügbar) [IP: 23.55.110.75 443]
Paketlisten werden gelesen... Fertig
E: Das Depot »https://deb.nodesource.com/node_12.x buster Release« enthält keine Release-Datei mehr.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
pi@piserviant:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
/usr/bin/nodejs
v12.20.0
/usr/bin/node
v12.20.0
/usr/bin/npm
6.14.8
nodejs:
Installiert: 12.20.0-1nodesource1
Installationskandidat: 12.20.0-1nodesource1
Versionstabelle:
*** 12.20.0-1nodesource1 500
500 https://deb.nodesource.com/node_12.x buster/main armhf Packages
100 /var/lib/dpkg/status
10.21.0~dfsg-1~deb10u1+rpi1 500
500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
Die Ausgabe von "htop" bekomme ich leider nicht als Text kopiert..
hier vor BLE:
und hier mit BLE:
noch etwas was ich machen kann?
Danke für deine Geduld