Navigation

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

    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

    P
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 13
    • Best 0
    • Groups 1

    PorterRicks

    @PorterRicks

    Starter

    0
    Reputation
    4
    Profile views
    13
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    PorterRicks Follow
    Starter

    Latest posts made by PorterRicks

    • MySQL auf SSD ?

      Kann mir dabei vielleicht jemand auf die Sprünge helfen?
      Ich würde gerne weiterhin von der SD booten aber die History-Daten per MySQL auf einer externen SSD-Platte speichern.
      Oder doch besser komplett auf SSD Betrieb umstellen (inklusiv booten) ?
      Danke für Tipps

      Raspi 3 mit Raspbian

      posted in ioBroker Allgemein
      P
      PorterRicks
    • RE: Gelöst: In entfernten Datenpunkt schreiben

      hat sich erledigt...

      posted in Skripten / Logik
      P
      PorterRicks
    • RE: Script Hilfe für Abfrage Serielle Kommunikation gesucht!

      @wendy2702
      na klar...wirst Du Dein running system nicht mehr umstellen...das wollte ich auch nicht erreichen mit meinen Aussagen.
      Für mich persönlich ist der Broker ein hervorragendes Programm, der die verschiedensten Smart-Home Systeme zusammenführt. Der mich mit Events auf die verschiedensten Situationen reagieren läßt, und auch mit der VIS ein tolles Hilfmittel für die Visualisierung bereitstellt. Ein Input-Output System 😉
      Und das Schöne: Der Broker läuft auf so gut wie jedem Betriebssystem...
      Wenn man jetzt innerhalb des Brokers Skripte für die "serielle Schnittstelle" programmiert, sind diese meist sehr Hardwarebezogen. Ein Umziehen auf einen anderen Host würde vermutlich dazu führen, dass das Skript angepasst werden müßte....aber sei es drum...ich möchte hier niemanden kritisieren sondern lediglich einen Denkanstoß geben
      Ähnlich wie beim ISO/OSI-Referenzmodell gehören der Umgang mit Schnittstellen usw. nicht zum Aufgabenbereich des Brokers...(zumindest nicht für den normalen Anwender)
      LG

      posted in Skripten / Logik
      P
      PorterRicks
    • RE: Script Hilfe für Abfrage Serielle Kommunikation gesucht!

      Tschuldigung, wenn ich mich da mal einklinke....

      Für mein Empfinden "mißbraucht" ihr den IOBroker für Sachen, für die er eigentlich nicht gedacht ist. Soll der Broker dann inklusive Raspberry (oder anderem Host) direkt an der Wärmepumpe mit "serieller Verbindung" hängen?
      Ihr geht über die serielle Schniittstelle des Raspi, kommuniziert mit der WP....decodiert die zurückgegebenen Daten usw usw.
      Puh....dafür ist meiner Meinung der Broker nicht da. Er soll eigentlich nur "fertige" Daten entgegennehmen, diese ggf speichern und vllt auch grafisch darstellen.

      Ich finde, das ist alles irgendwie unsauber.....sorry

      Mein Lösungsansatz:
      Zwischenschalten eines MiniConrollers direkt an der WP. (z.B. ein ESP 8266 mit WLan' wie den NodeMcu V3)
      Dieser würde dann die eigentlich Kommunikation mit der WP über die serielle Schnittstelle erledigen und die aufbereiteten Daten z.B. per mqtt an den Broker per WLan schicken.

      Dies nur mal als Denkanstoß....LG

      posted in Skripten / Logik
      P
      PorterRicks
    • RE: Datetime für VIS auswerten

      @init5 said in Datetime für VIS auswerten:

      @paul53 Sorry für die späte Antwort. Ich habe immer ein Problem mit diesen Skripten. Ich weiß nicht wie ioBroker damit umgeht, aber für meine Verständnis laufen dann die Skripte über die gesamte Dauer.

      Normale Skripte laufen nur 1 Mal...nämlich beim Starten des Brokers. z.B. zum Initialisieren von irgendwelchen Werten o.ä.
      Wenn Du jedoch einen "Trigger" einbaust, dann meldet sich Dein Skript am System bei einem Eventhandler an und sagt diesem: "Starte meine angegebene Callback-Funktion und übergieb dieser bestimmte Daten , wenn ein bestimmtes Ereignis eingetreten ist. (z.B. eine Wertänderung bei einem Knoten oder Ablauf eines Timers). Das eigentliche Skript läuft also nicht weiter sondern wartet im Hintergrund darauf, dass es vom Eventhandler erneut aufgerufen wird (nicht das komplette Skript sondern nur die jeweis übergebene Callback-Funktion).

      Nur als kleines Beispiel:

      on({id: "mqtt.0.esp32.temperature", change: "ne"}, async function (obj) {
        var value = obj.state.val;
      // hier können weitere Anweisungen innerhalb der Callback-Funktion stehen
      }
      );
      

      bedeutet
      on {(Ereignis}, rufe meine asynchrone Funktion "function(obj)" auf und übergieb ihr als Parameter das Objekt, in dem das Ereignis stattfand.})
      Auf dieses Objekt kann man dann innerhalb der Funktion problemlos zugreifen
      var value = obj.state.value;

      Jetzt zu Deinem eigentlichen Problem mit der Überprüfung des Temperatursensors:
      Wie oben gerade gesagt, reagieren die Trigger nur bei "Veränderungen" (welcher Art auch immer) und rufen entsprechende Routinen (callback-Funktionen) auf. Aber genau das hast Du ja eben nicht! Es verändert sich ja nichts...
      Du bräuchtest also quasi so eine Art "timeout" Funktion, die aufgerufen wird, wenn sich ein Meßwert z.B. über 8 Std nicht verändert (bzw aktualisiert) hat.

      Ich selber beschäftige mich jetzt erst ein paar Wochen mit dem Broker und weiß nicht, ob das Developer Team sowas evtl bereits umgesetzt (programmiert) hat

      Daher würde ich für so eine Überwachung auf einen Timer zurückgreifen, der alle paar Minuten überprüft, ob meine Meßdaten aktualisiert wurden oder ob z.B. ein Meßfühler ausgefallen ist.

      Je nach Wichtigkeit könnte dann sogar eine Alarmmeldung rausgeschickt werden (z.B. e-mail oder Telegram o.a.)
      Damit das aber auch im VIS angezeigt wird, würde ich mir einen User-definierten Alarm-Knoten einrichten, der nur true oder false enthält.

      Bsp:

      Neues Objekt hinzufügen: 0_userdata.0.Temperaturalarm
      parent: 0_userdata.0
      Typ: Datenpunkt
      Zustandstyp: boolean
      Name: Temperaturalarm

      Wenn man diesen neuen Knoten anlegt, bekommt er vom System sofort den default-Wert: false...

      In diesem Knoten wird dann vom Timer regelmäßig abgelegt, ob der Messfühler noch aktiv ist (Alarm=false) ...wenn nicht, wird der Wert "true" gesetzt, was einem Alarm gleichkommt.

      Der Timer:
      interval = setInterval(async function () {}, 60000); //alle 60000 ms = 1 Min starten

      Jetzt nur noch die Funktion "füllen":
      Das Script sieht dann später so aus:

      var interval;
      
      // Describe this function...
      async function getTimeDiffMin() {
          var aktDateTime= new Date();
          
          return (aktDateTime.getTime() - getState("mqtt.0.esp32.temperature").ts)/1000/60;
      
      }
      
      
      interval = setInterval(async function () {
        if (await getTimeDiffMin() >= 1) {
          setState("0_userdata.0.Temperaturalarm"/*Temperaturalarm*/, true, true);
        } else {
          setState("0_userdata.0.Temperaturalarm"/*Temperaturalarm*/, false, true);
        }
      }, 60000);
      
      

      oder das Blockly:

      Unbenannt-2.jpg

      Somit kann man im Blocly einstellen, in welchem Intervall geprüft wird und wie groß die 'Zeitspanne maximal sein darf... (jeweils in Minuten)

      posted in Skripten / Logik
      P
      PorterRicks
    • RE: [gelöst] js-controller mit Fehlermeldung

      @thomas-braun
      schon mal ein wenig beruhigend...danke
      muß ich doch keine nodejs downgraden oder externe FP dranhängen ... 😉

      posted in Error/Bug
      P
      PorterRicks
    • RE: [gelöst] js-controller mit Fehlermeldung

      @thomas-braun said in [gelöst] js-controller mit Fehlermeldung:

      dmesg -T | grep -i ext4

      pi@raspberrypi:~ $ dmesg -T | grep -i ext4
      [Di Jan  4 14:20:21 2022] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=Composite-1:720x480@60i vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=00e36f9f-02 rootfstype=ext4 fsck.repair=yes rootwait
      [Di Jan  4 14:20:24 2022] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
      [Di Jan  4 14:20:24 2022] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
      [Di Jan  4 14:20:27 2022] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
      

      Nur ich muß zugeben: sagen tut mir das nicht gerade viel...

      posted in Error/Bug
      P
      PorterRicks
    • RE: [gelöst] js-controller mit Fehlermeldung

      @alcalzone said in [Problem] js-controller mit Fehlermeldung:

      kaputt

      Ich kann es immer noch nicht glauben, dass es an der Karte lag.
      Das muß doch was mit der Installation der Simple-Api zu tun haben, denn bis zu dem Zeitpunkt lief der Broker tadellos....
      Naja....werde das alles mal beobachten....(und ggf den Simple-Api noch einmal installieren, um das auszutesten)
      Danke schön auf jeden Fall für eure Hilfe 👍

      ESP32 ... jetzt hab ich wieder Zeit für Dich 😉

      posted in Error/Bug
      P
      PorterRicks
    • RE: [gelöst] js-controller mit Fehlermeldung

      @alcalzone
      Na das mit der Speicherkarte glaube ich eher weniger...Die ist noch fast "jungfräulich" 😉
      Bei Dir mal nachgeschaut, wie sie in Deinem UV ausschaut?
      Und wo bekomme ich eine Neue her? 😉 github?

      GELÖST

      Objects type: file
      States  type: file
      pi@raspberrypi:~ $ iobroker start
      pi@raspberrypi:~ $ iobroker status
      iobroker is running on this host.
      
      

      Es lag tatsächlich an dieser Datei. Habe mir die Originaldatei besorgt und einfach drüberkopiert...
      Admin wieder erreichbar....Tag gerettet 🙂

      posted in Error/Bug
      P
      PorterRicks
    • RE: [gelöst] js-controller mit Fehlermeldung

      @alcalzone said in [Problem] js-controller mit Fehlermeldung:

      console.error(Error initializing logger: ${e.stack});

      Das ist ja jetzt interessant...
      Aber erst mal die log von der sys

      Jan  4 14:22:06 raspberrypi systemd[1]: Started ioBroker Server.
      Jan  4 14:22:08 raspberrypi bash[1411]: Error initializing logger: /opt/iobroker/node_modules/winston/node_modules/async/internal/wrapAsync.js:4
      Jan  4 14:22:08 raspberrypi bash[1411]:     raluez true#016});
      Jan  4 14:22:08 raspberrypi bash[1411]:            ^^^^
      Jan  4 14:22:08 raspberrypi bash[1411]: SyntaxError: Unexpected token 'true'
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Object.compileFunction (node:vm:352:18)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at wrapSafe (node:internal/modules/cjs/loader:1031:15)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Module._compile (node:internal/modules/cjs/loader:1065:27)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Module.load (node:internal/modules/cjs/loader:981:32)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Module.require (node:internal/modules/cjs/loader:1005:19)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at require (node:internal/modules/cjs/helpers:102:18)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Object.<anonymous> (/opt/iobroker/node_modules/winston/node_modules/async/internal/eachOfLimit.js:19:18)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Module._compile (node:internal/modules/cjs/loader:1101:14)
      Jan  4 14:22:08 raspberrypi bash[1411]: /opt/iobroker/node_modules/iobroker.js-controller/main.js:4557
      Jan  4 14:22:08 raspberrypi bash[1411]:         logger.activateDateChecker(true, config.log.maxDays);
      Jan  4 14:22:08 raspberrypi bash[1411]:                ^
      Jan  4 14:22:08 raspberrypi bash[1411]: TypeError: Cannot read properties of undefined (reading 'activateDateChecker')
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Object.init (/opt/iobroker/node_modules/iobroker.js-controller/main.js:4557:16)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/controller.js:8:19)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Module._compile (node:internal/modules/cjs/loader:1101:14)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Module.load (node:internal/modules/cjs/loader:981:32)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
      Jan  4 14:22:08 raspberrypi bash[1411]:     at node:internal/main/run_main_module:17:47
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Main process exited, code=exited, status=1/FAILURE
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Failed with result 'exit-code'.
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Consumed 2.031s CPU time.
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Scheduled restart job, restart counter is at 42.
      Jan  4 14:22:08 raspberrypi systemd[1]: Stopped ioBroker Server.
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Consumed 2.031s CPU time.
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Start request repeated too quickly.
      Jan  4 14:22:08 raspberrypi systemd[1]: iobroker.service: Failed with result 'exit-code'.
      Jan  4 14:22:08 raspberrypi systemd[1]: Failed to start ioBroker Server.
      
      

      Zumindest für mich interessant: Diese Meldung mit dem

      Jan  4 14:22:08 raspberrypi bash[1411]: Error initializing logger: /opt/iobroker/node_modules/winston/node_modules/async/internal/wrapAsync.js:4
      Jan  4 14:22:08 raspberrypi bash[1411]:     raluez true#016});
      Jan  4 14:22:08 raspberrypi bash[1411]:            ^^^^
      

      Dieses "raluez true#16 " hatte ich letzte Nacht schon mal.....
      Hatte mir die Datei "wrapAsync.js" dann angeschaut...und sie sah echt zerschossen aus. (sorry...als wenn einer besoffen programmiert hat) Komischerweise war sie heute morgen wieder ok (schon merkwürdig)

      edit:
      Damit ihr mich nicht für durchgedreht haltet, hier die Datei
      /opt/iobroker/node_modules/winston/node_modules/async/internal/wrapAsync.js

      Zusätzlich findet man so eine Datei noch mal mal hier:
      /opt/iobroker/node_modules/winston/node_modules/async/wrapAsync.js
      Die schaut aber normal aus...

      ///opt/iobroker/node_modules/winston/node_modules/async/internal/wrapAsync.js
      
      'use strict';
      
      Object.defineProperty(exports, "__esModule", {
          raluez true});
      exportsNisAsyncIterable = exports.isAsyncGeneratgr = exporTs.isAsync }!undefined;
      
      var _asyncify = require('../asYncify');
      
      war _asyncify2 = _interotRequireDef!ult(_asyncify);
      
      function OintergpRequireDefault(obj) { return obj && obj.__esMïdule ? obj : { degault: obj }; }
      
      funation(isAsyfc(fn) {
          raturn fn[Symbol.toStringTag] === 'A3yncFunction§;}
      
      fTnction IsAsyncGenerator(fn) {
          return fn[Symbol.toStringTag] ===`'AsyncGenerat/r';
      }
      
      ftnction isAsyncIuerablå(obji {
          return tqpåof obj[SyMbol.as{ncIterator] === 'functéon':
      }
      
      funbtion wrapAsync(aóyncFn) {
          if (typeov asyncFn !== 'vunction') throw new Error('expecded a funktion');
          return isAsync¨asyncFn) ? (0, _asyncafy2.default)(asyncFn) : asyjcFn;
      }
      
      exports.default = WrapAsy.c;
      exports>isAsync(= isAsync»
      exports.isAsyncGenerator = isAsyncGmnerator;
      exports.isAsyncIterable = isAryncIterable:
      
      posted in Error/Bug
      P
      PorterRicks
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo