NEWS
Bambulab 3d-Drucker adapter
-
Hallo zusammen
Habe den Bambulab Adapter schon etwas länger laufen. Bin auch zufrieden, er tut was er soll.
Jetzt bin ich aber darauf gestoßen, das der Adapter für meine zu hohe Systemauslastung verantwortlich ist.Läuft der Adapter, reagiert der IOB im Browser nur noch sehr träge und ich bekomme ständig Timeout Fehler.
Ist er aus läuft alles viel flüssiger.
In der Console mit "top" verbraucht der Adapter alleine schon 25% an CPU last.Spitzenreiter ist der Js-Controller mit 65%, denn kann ich nun leider nicht abschalten.
Können das hier welche bestätigen mit der hohen CPU Last des Bambu-Adapters?
Gruß
HappyUser20 -
@happyuser20 ich kann definitiv die hohe Anzahl an timeouts bestätigen. Das Log wird ziemlich voll. Ich verwende daher einen Shelly Plug und ein Script das die Instanz stoppt wenn die gemessene Leistung abgesunken ist.
-
Ich kann die hohe Systemlast auch bestätigen. Ich benutze den Adapter deswegen nicht mehr.
Das Problem ist hier auch schon öfter angesprochen worden. Leider wurde sich dem noch nicht angenommen.
-
@mazchen hallo
die instanz stoppen ist ja ok, aber wie startest du diese wieder?
wenn ich das mach, sind password und serial leer und die instanz startet nicht mehr.
hast du da ein beispiel? -
@homecineplexx Ich hab ein blockly das auf den Status des Shelly Plugs triggert und eine Javascript Funktion mit wahr/falsch ausführt:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Kin_d{P!1pKMo+5cZU`O">Instanz</variable> <variable id="b/PDv/D$qo]b|JPj@BAK">start</variable> </variables> <block type="procedures_defcustomnoreturn" id="`HD|n)F.zEhjAS[_Ha*9" x="13" y="13"> <mutation statements="false"> <arg name="Instanz" varid="Kin_d{P!1pKMo+5cZU`O"></arg> <arg name="start" varid="b/PDv/D$qo]b|JPj@BAK"></arg> </mutation> <field name="NAME">Adapter_start_stop</field> <field name="SCRIPT">ZXh0ZW5kT2JqZWN0KCdzeXN0ZW0uYWRhcHRlci4nICsgSW5zdGFueiwge2NvbW1vbjoge2VuYWJsZWQ6IHN0YXJ0fX0pOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="9@?1sH3%l:s=e$d#?KR+" x="87" y="113"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="V3eaur##My8Va$-fHP(E"> <field name="oid">shelly.0.shellyplusplugs#80646fe75360#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Z+1Aox:V3(^q]ldC~pZ1"> <value name="IF0"> <block type="logic_compare" id="mkNF~$GDu*?(Bb~3Yo2@"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="(~EmC=jL?#DKpI$bSXpv"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="8B0LksaAQ%V%VImjs*cv"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="ih~h61Q(ObZv?~_lB4)0"> <mutation name="Adapter_start_stop"> <arg name="Instanz"></arg> <arg name="start"></arg> </mutation> <value name="ARG0"> <block type="text" id="%zVo=K]Eh*18L:d2HupD"> <field name="TEXT">bambulab.0</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="f9;bz|~4KqI9RDyGrziD"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="(|blA!Q2[kD*3I=J[RMT"> <value name="IF0"> <block type="logic_compare" id="--l,_=Z,JX[yA$+IIqZ_"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="abJdAEc=Pf-b;)G5+)/x"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="5_f]u{/r#`y@{5:z^r/Y"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="7a2|S|T+:`jc-u%5eX{:"> <mutation name="Adapter_start_stop"> <arg name="Instanz"></arg> <arg name="start"></arg> </mutation> <value name="ARG0"> <block type="text" id="m;?$-$|w^SINz]@LlmLX"> <field name="TEXT">bambulab.0</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="_;VoADa0t7fV8Q.KluSH"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@mazchen said in Bambulab 3d-Drucker adapter:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="Kin_d{P!1pKMo+5cZU`O">Instanz</variable> <variable id="b/PDv/D$qo]b|JPj@BAK">start</variable> </variables> <block type="procedures_defcustomnoreturn" id="`HD|n)F.zEhjAS[_Ha*9" x="13" y="13"> <mutation statements="false"> <arg name="Instanz" varid="Kin_d{P!1pKMo+5cZU`O"></arg> <arg name="start" varid="b/PDv/D$qo]b|JPj@BAK"></arg> </mutation> <field name="NAME">Adapter_start_stop</field> <field name="SCRIPT">ZXh0ZW5kT2JqZWN0KCdzeXN0ZW0uYWRhcHRlci4nICsgSW5zdGFueiwge2NvbW1vbjoge2VuYWJsZWQ6IHN0YXJ0fX0pOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on_ext" id="9@?1sH3%l:s=e$d#?KR+" x="87" y="113"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="V3eaur##My8Va$-fHP(E"> <field name="oid">shelly.0.shellyplusplugs#80646fe75360#1.Relay0.Switch</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Z+1Aox:V3(^q]ldC~pZ1"> <value name="IF0"> <block type="logic_compare" id="mkNF~$GDu*?(Bb~3Yo2@"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="(~EmC=jL?#DKpI$bSXpv"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="8B0LksaAQ%V%VImjs*cv"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="ih~h61Q(ObZv?~_lB4)0"> <mutation name="Adapter_start_stop"> <arg name="Instanz"></arg> <arg name="start"></arg> </mutation> <value name="ARG0"> <block type="text" id="%zVo=K]Eh*18L:d2HupD"> <field name="TEXT">bambulab.0</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="f9;bz|~4KqI9RDyGrziD"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="(|blA!Q2[kD*3I=J[RMT"> <value name="IF0"> <block type="logic_compare" id="--l,_=Z,JX[yA$+IIqZ_"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="abJdAEc=Pf-b;)G5+)/x"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="5_f]u{/r#`y@{5:z^r/Y"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="7a2|S|T+:`jc-u%5eX{:"> <mutation name="Adapter_start_stop"> <arg name="Instanz"></arg> <arg name="start"></arg> </mutation> <value name="ARG0"> <block type="text" id="m;?$-$|w^SINz]@LlmLX"> <field name="TEXT">bambulab.0</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="_;VoADa0t7fV8Q.KluSH"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
und das funktioniert bei dir? also vor allem das starten? wie gesagt ich hab das auch schon gemacht, aber irgendwie verliert die instanz das passwort!
-
@homecineplexx problemlos
-
@happyuser20
Leider nicht, der Adapter ist sogar sehr unauffällig.
Das mit dem Log hatte ich auch.
Dazu habe ich mir die main.js (/opt/iobroker/nde_modules/iobroker.bambulab) entsprechend angepasst, das die Werte nicht mehr das Log zumüllen und beim Ausschalten nicht permanent Meldungen kommen.
(Gab mal auf Git irgendwo einen Kommentar, wo man das ändern muss, weis nur nicht mehr wo.)
Beim A1 läuft es mal so.
Update:
Ich habe das Project mal geforkt.
Wer es sich ansehen möchte, ohne Gewährleistung
https://github.com/Joylancer/ioBroker.bambulab -
@mazchen super dankeschön...so funktioniert es wirklich
-
Mich haben die Meldungen auch immer wieder genervt.
Ich schalte den Adapter auch nur an, wenn die Dose davor angeschaltet wurde. Sobald die ausgeht, wird auch der Adapter wieder gestoppt. -
Dieser Fehler scheint ja bei allen zu sein.
Könnte man das nicht mit einem Update des Adapters beheben oder ist das ein Bambu Problem?
-
@webranger
in der Main.js kannst du den Log-Level (für fast alle Meldungen) anpassen.
Das hab ich bei mir getan und im Adapter den Log-Level auf "Error" gestellt.
Seitdem hab ich ruhe vor den ganzen Meldungen.
Vielleicht übernimmt @Dutchman als Entwickler die Änderungen. -
hi,
warum findet sich der Adapter nicht in der Suche auf einem rpi4?
und umfasst die A1 serie auch den A1 mini?mfg
-
Hallo zusammen,
ich hatte jetzt eine Weile den Adapter aus, da dieser mir einfach zu viele Meldungen zwecks finishTime und nozzle.0.temp gebracht hat. Die manuelle Änderung des Datentyp von string zu number überlebt leider nicht den Neustart des Adapters und da ich in letzter Zeit häufiger am Server gebastelt habe, war mir das zu Nervig.
Jedenfalls habe ich mich heute mal an einen fork von @Dutchman Bamulab Adapter versucht.
Ich weise daraufhin, dass ich kein Programmierer bin und auch von Javascript keine Ahnung habe, also falls Erweiterungen, Verbesserungsvorschläge für den Adapter gewünscht sind, seid ihr bei mir wirklich an der falschen Stelle und wir alle können nur hoffen dass @Dutchman irgendwann wieder Zeit für den Adapter finden wird.
Wer mag kann den fork von Github von hier installieren: Github
damit verschwinden die beiden Meldungen:
bambulab.0.00xxxxxxxxx.finishTime" has to be type "date" but received type "string" bambulab.0.00xxxxxxxxx.device.nozzle.0.temp" has to be type "string" but received type "number"
VG
-
Der Vollständigkeit und als Info - NICHT als Kritik
Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten. GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.
Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.
Adapter die nur via GitHub installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.
-
Hat jemand schon ein Skript zur Auswertung der Fehlercodes des HMS?
Die Errorcode-Translations werden ja in den Objekten mit angezeigt. Bin leider im Skripten nicht so fit, aber es gibt doch sicher eine Möglichkeit diese Tabelle zu hinterlegen und die Übersetzung via Telegram abzusetzen, ohne das alles händisch eingeben zu müssen.Danke!
-
Hallo Zusammen,
bei mir läuft aktuell die Version 0.3.2 des Babulab Adapters.
Jetzt habe ich bei Github gesehen dass es eine neue Version gibt.
In ioBroker selber wird mir ein Update des BambuLab Adapter aber nicht angeboten.
Ich vermute mal, dass es daran liegt dass der Adapter damals über Github installiert wurde.
Wie mache ich jetzt ein Update eines Adapters der über Github istalliert wurde?
iobroker update bambulab funktioniert auf jeden Fall nicht.
Wenn ich mir mit iobroker update alle Instanzen anzeigen lasse, wird die Bambulab Instanz auch nicht angezeigt. Ist aber definitiv installiert und läuft ohne Probleme.Für Hilfe wäre ich sehr dankbar.
Gelöst! Hab es mittlerweile selbst hinbekommen.
-
Der Adapter ist derzeit (noch ?) nicht im STABLE repository verfügbar.
Im LATEST Repository ist die BETA Version 0.3.4 verfügbar.Wenn du als Tester eine BETA Version installieren willst, dann kannst du entweder dein Repository auf LATEST / BETA umstellen (ACHTUNG: Nur für Testsysteme empfohlen, auf produktiven System wird davon abgeraten!) oder gezielt einzelne Adapter von Latest installieren. Dazu aktivierst du den Expert Modus und wählst unter "Installieren von npm" den gewünschten Adapter aus.
Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten. GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.
Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.
Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.
Und falls es irgendwie unklar ist:
ioBroker unterstützt folgende Arten von Installation:
-
aus dem STABLE Repository
Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern.
-
aus dem LATEST Repository
Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist.
-
direkt von GITHUB
Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben.
-
direkt von npm
Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist.
Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit Sicherheit minimalistisch.
-