Navigation

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

    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

    C
    • Profile
    • Following 0
    • Followers 1
    • Topics 18
    • Posts 90
    • Best 4
    • Groups 1

    coalado

    @coalado

    Starter

    4
    Reputation
    32
    Profile views
    90
    Posts
    1
    Followers
    0
    Following
    Joined Last Online

    coalado Follow
    Starter

    Best posts made by coalado

    • RE: NEU ioBroker Alexa Custom Skill verfügbar!

      @apollon77 Danke für die Docs. Perfekt.
      Mit dem "Rohtext" im Alexa2 Adapter klappt alles bei mir. 3-6 Sekunden sind zu lange um ein "Stop" zu schicken bevor Alexa ihr "Dazu kann ich nichts Sagen, X kann das nicht...bla" ausspuckt. Ich habe angefangen mir Dummy-Geräte im IOT Adapter zu erstellen, und Routinen die dann diese Geräte triggern. Damit geht ein "Alexa, bitte lüften" wieder wunderbar schnell - allerdings ist das natürlich mit etwas Aufwand verbunden. (Vor allem weil man Routinen nur über die App erstellen kann). Ein "Alexa, erinnere mich an *" geht damit aber leider auch nicht, weil Routinen keine Platzhalter oder gar RegEx kennen.

      Deswegen habe ich mir jetzt den Custom Skill angeschaut. "Alexa, sag IOBroker erinnere mich an das Einkaufen" geht damit prima.

      Zusammengefasst: Alles I.O. 🙂

      posted in Cloud Dienste
      C
      coalado
    • RE: Name ändern in Admin 5.*

      @cinimod danke, das weiß ich, aber ich habe das oft benutzt, und der Umweg über den JSON Editor ist schon etwas nervig. Aber ich kann damit leben - dachte nur dass sich das eventuell wieder einfach irgendwo aktivieren lässt.

      posted in ioBroker Allgemein
      C
      coalado
    • RE: jarvis v3.0.0 - just another remarkable vis

      Kann das Notificationfeature auch die Notification API der Browser nutzen, d.h. Benachrichtigungen am Desktop/Handy anzeigen wenn die Website gerade nicht geöffnet ist?
      Ich sehe keinen Service-Worker, also vermutlich nicht. Ich finde das wäre eine wirklich praktische Erweiterung.

      posted in Tester
      C
      coalado
    • RE: jarvis v3.0.0 - just another remarkable vis

      @zefau said in jarvis v3.0.0 - just another remarkable vis:

      @coalado kannst du mittels body style umsetzen

      Stimmt. Super. Vielen Dank!

      Für alle die das selbe umsetzen wollen:

      Dieser BodyStyle sorgt dafür, dass der Eintrag im Popup verschwunden ist, wenn der Datenpunkt leer ist, ansonsten wird er rot hinterlegt angezeigt. Das ist z.B. für Datenpunkte praktisch die Fehlermeldungen enthalten.

      "bodyStyle": {
                "default": {
                  "background-color": "red"
                },
                "": {
                  "display": "none"
                }
              }
      
      posted in Tester
      C
      coalado

    Latest posts made by coalado

    • RE: jarvis v3.0.0 - just another remarkable vis

      @mcu Das Script ist länger. Vermutlich zu viel für hier. Im Grunde bearbeite ich den widgets Datenpunkt und füge neue Items hinzu.
      Dann bleibt mir wohl nur der Weg den layout Datenpunkt entsprechend zu bearbeiten.

      posted in Tester
      C
      coalado
    • RE: jarvis v3.0.0 - just another remarkable vis

      Ist es möglich ein Widget im Layout automatisch wachsen zu lassen - also dass die Box immer soviel Platz kriegt wie das Widget braucht?

      Ich packe via Script z.B. Einträge in eine StateList - und hätte gerne dass sich diese List im Layout immer genau so viel Platz nimmt wie sie braucht

      posted in Tester
      C
      coalado
    • RE: States in Redis (States) DB die es in IOBroker nicht gibt.

      @ticaki

      Also grundsätzlich sind "600 mehr als ich habe" auch irgendwie falsch, oder?
      "Es fehlen States":
      Ich kann es nicht genau eingrenzen. Es sind zeitweise nicht alle enthalten (Nicht alle die ich z.B. in der Admin/Objects Ansicht habe, und auch nicht alle die ich in Redis habe).
      Irgendwann sind dann mal wieder plötzlich alle da. Ich konnte bisher nicht rausfinden was genau dazu führt, und wieso es dann wieder plötzlich korrekt ist. Eventl. ein falsch implementierter Cache, kaputte DB, ein Javascript Adapter Neustart, oder oder oder...

      Ich schaffe es leider auch nicht das Problem zuverlässig nachzustellen.

      Zum Anwendungsfall:
      Ich gebe Datenpunkten, die ich gerne als Alias hätte einen Namen wie alias.sensor.temperature.wohnzimmer. Ein Script läuft durch alle States, sucht nach Namen die mit alias. anfangen, und erstellt automatisch einen passenden Alias - und löscht alle anderen.

      Das geht natürlich mächtig schief, wenn ich keine zuverlässige Methode habe durch alle tatsächlich existierenden States zu loopen.
      Dieses Problem gab es übrigens auch vor meinem Wechsel zu Redis.

      posted in JavaScript
      C
      coalado
    • RE: synchronize/locking scripts

      @blockmove
      Sorry für die später Antwort.

      Zum "Warum":
      Ich habe das Beispiel mit dem Counter gewählt, weil es einfach zu verstehen ist. Praktisch mache ich das nicht. Ich mache das auch in der Regel nicht mehrfach pro Sekunde - aber es geht halt um die theoretische Möglichkeit von Fehlern - auch wenn sowas bei normaler Nutzung nur selten passiert - ist es trotzdem ein Problem.

      Praktisch geht es eher um Dinge, dass ich Scripte habe, die z.B. Enums anlegen, und diesen Enums Datenpunkte zuordne. An anderer Stelle lese ich eben diese Enums und Datenpunkte aus, um z.B. Geräte für den IOT Adapter zu erstellen (Ich erstelle die selbst, und nutze nicht die "Logik" des IOT Adapters). Dazu muss ich in verschiedenen Scripts Objects lesen/bearbeiten. Das muss synchronisiert sein, weil es sonst zu besagten Problemen kommen kann.

      Mir ist völlig klar, dass das weit über das hinausgeht was die meisten mit IOBroker machen, und vermutlich sollte ich das auch nicht via Script-Adapter, sondern über einen eigenen Adapter machen.
      Aber gibt es für Adapter passende Konzepte? Oder verlässt man sich da drauf, dass ein Adapter nur die eigenen Objekte/States modifiziert?

      posted in JavaScript
      C
      coalado
    • States in Redis (States) DB die es in IOBroker nicht gibt.

      Begrifflichkeiten: State: Zustand Object: Objekt
      Ich habe kürzlich auf Redis für die States gewechselt und die vorherige DB migriert. Die ObjektDB habe ich auf JSONLines belassen.

      Ich habe leider Probleme mit den Selektoren - Selektoren geben bei mir einfach nicht immer alle States zurück - ich konnte bisher nicht rauskriegen an was das liegt.

      Bei $("*") fehlen also oft viele States.

      Deswegen habe ich als "Workaround" versucht mich direkt auf Redis zu verbinden und die States da zu lesen - klappt prima.
      Allerdings treffe ich jetzt auf viele States die es in Redis gibt, aber in IOBroker nicht.
      z.B. "io.0_userdata.0.ext.myScenes.0.devices.lights.Gästebad"
      Dabei handelt es sich um einen State den es tatsöchlich früher mal gab, der inzwischen aber nicht mehr existiert. Dazu gibt es kein Objekt in IOBroker,(existsObject -> false) und es gibt keinen State in IOBroker (existsState -> false), allerdings existiert der Eintrag in der Redis DB.

      Wie kann das sein? Ich habe ca 13000 keys in Redis, und es scheint als wären viele davon veraltet.
      Das riecht früher oder später nach Problemen.

      posted in JavaScript
      C
      coalado
    • synchronize/locking scripts

      Ich stehe immer wieder vor dem Problem dass eine gute Methode fehlt Zugriffe zu synchronisieren.

      Problem: D.h. wenn z.B. mehrere Skripte einen State lesen ->Wert (z.B. Counter) erhöhen, und wieder schreiben. Das funktioniert nur ordentlich, wenn alle (lesen->ändern->schreiben) Vorgänge "nacheinander" bzw. geordnet ablaufen.

      Ich habe mir jetzt mit messageTo onMessage beholfen - ein Script verwaltet eine Art Queue und führt einen Job nach dem anderen aus.

      await synchronized("my_ID",async function(){
      var state=getState("my_ID");
      await setStateAsync("my_ID",state.val++);
      });
      

      Dieser Aufruf stellt dann sicher, dass alle so aufgerufenen Code-Blöcke nacheinander ausgeführt werden - auch über verschiedene Scripts hinweg.

      Allerdings ist sendMessage nicht sehr schnell - da gibt es doch sicher bessere Wege, oder?

      posted in JavaScript
      C
      coalado
    • RE: NEU ioBroker Alexa Custom Skill verfügbar!

      @apollon77 Danke für die Docs. Perfekt.
      Mit dem "Rohtext" im Alexa2 Adapter klappt alles bei mir. 3-6 Sekunden sind zu lange um ein "Stop" zu schicken bevor Alexa ihr "Dazu kann ich nichts Sagen, X kann das nicht...bla" ausspuckt. Ich habe angefangen mir Dummy-Geräte im IOT Adapter zu erstellen, und Routinen die dann diese Geräte triggern. Damit geht ein "Alexa, bitte lüften" wieder wunderbar schnell - allerdings ist das natürlich mit etwas Aufwand verbunden. (Vor allem weil man Routinen nur über die App erstellen kann). Ein "Alexa, erinnere mich an *" geht damit aber leider auch nicht, weil Routinen keine Platzhalter oder gar RegEx kennen.

      Deswegen habe ich mir jetzt den Custom Skill angeschaut. "Alexa, sag IOBroker erinnere mich an das Einkaufen" geht damit prima.

      Zusammengefasst: Alles I.O. 🙂

      posted in Cloud Dienste
      C
      coalado
    • RE: $Selector für Objekte

      Ich bin auf 7.1.6
      Warum hat ein eigener Datenpunkt einen Alias und warum hat die ID eine GeräteID hat, tut jetzt hier eigentlich nichts zur Sache. Ich kann das gerne erklären, aber ich denke das würde jetzt nur vom eigentlichen Problem ablenken.

      Begrifflichkeiten:

      • object: Das Json-Objekt, das z.B. mit getObject abgerufen oder mit existsObject überprüft werden kann.

      • state: Der Zustand, den man mit getState abrufen oder mit existsState prüfen kann.

      So kann ich das Problem nachstellen:

      • Ich erstelle einen Alias (alias.0.example) zu einer ID (0_userdata.0.example) für die es sowohl object als auch state gibt
      • Ich lösche das object (deleteObject("0_userdata.0.example"))
      • das object alias.0.example gibt es noch. existsObject("alias.0.example") gibt true zurück
      • den state alias.0.example gibt es nicht mehr. existsState("alias.0.example") gibt false zurück
      • log($("alias.0.example")) gibt mir jetzt {'length':0} aus.
      • log($("alias.0.*")) enthält alias.0.example auch nicht mehr
      posted in Skripten / Logik
      C
      coalado
    • $Selector für Objekte

      Ich habe einige "verweiste" Alias Einträge.

        "_id": "alias.0.lights.stehlampe.online",
        "type": "state",
        "common": {
          "alias": {
            "id": "0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online"
          },...
      

      d.h. der state bzw das object dahinter gibt es nicht mehr (0_userdata.0.online.shelly.0.SHSW-25#112E6F#1.online)

      Um aufzuräumen, würde ich gerne durch die Liste gehen

      $("alias.*").each(id=>{
      if(!existsObject(getObject(id).common.alias.id)){
      //cleanup...
      }
      })
      

      Allerdings scheint zu alias.0.lights.stehlampe.online kein state mehr zu existieren,(Allerdings gibt es das objekt natürlich noch) und der selector gibt mir diese ids nicht zurück.
      Wie kann ich durch alle objekte "loopen"? $(...) scheint nur ids zu liefern zu denen es auch einen state gibt?

      posted in Skripten / Logik
      C
      coalado
    • RE: NEU ioBroker Alexa Custom Skill verfügbar!

      Hat sich erledigt.

      Ein Script muss direkt 'iot.0.smart.lastResponse' setzen:

      setState('iot.0.smart.lastResponse',JSON.stringify({sessionId:input.sessionId, responseText :"Meine Antwort", shouldEndSession:true}));
      })

      Gibt es dazu irgendwo eine Dokumentation?

      posted in Cloud Dienste
      C
      coalado
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo