Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    U
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 303
    • Best 45
    • Groups 2

    UlliJ

    @UlliJ

    ich bin übrigens nicht perfekt und ich arbeite auch nicht daran!

    60
    Reputation
    59
    Profile views
    303
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    UlliJ Follow
    Pro Starter

    Best posts made by UlliJ

    • RE: Zeigt her eure Vis2

      es ist etwas Arbeit aber die Seite mit der Energieübersicht ist soweit fertig...bis einem etwas neues einfällt.

      a39c346c-1b6b-487e-bdb6-4e806f24d796-image.png
      Edit: Damit es nicht so langweilig ist mit Animation für die Batterie (beim Entladen andersrum) und die Energieflüsse zwischen den einzelnen Teilen
      anibatt.gif

      Diagramme gehen auch
      fa653fb5-98ca-49d6-9359-19a0870ceb1a-image.png
      und der Rest, wie Zeit und Laune ist. Vis1 funktioniert ja parallel

      posted in Visualisierung
      U
      UlliJ
    • RE: Ölheizung für Luftwärmepumpenbetrieb testen?

      @dieter_p
      Hi,
      habe im Oktober '20 mit folgender Ausgangslage von Öl auf Luft-Wasser WP umgebaut:
      190m², Baujahr 1961, Fenster, Dach wärmetechnisch saniert in 2002, Fassade 2-schalig mit 5cm Luftschicht wie in Norddeutschland zu der Zeit üblich, keine Fußbodenerwärmung, Ölbrenner BJ 2002 mit 18kW, Hygienespeicher zur WW-Versorgung ebenfalls BJ 2002

      Ergänzend: PV Anlage mit 9,2kWp + Speicher. Bis auf den HK im Büro keine Umbauten an Heizkörpern

      Fazit nach dem 2. Winter: Funktioniert uneingeschränkt ... und das Haus ist CO2 frei. Die Elektroheizung der WP wurde nur bei Inbetriebnahme einmal verwendet und ist seitdem deaktiviert.

      Ob das im Einzelfall funktioniert oder nicht kann nicht pauschal beantwortet werden und leider haben die Heizungsbauer beim Thema Wärmepumpentechnik wissenstechnisch Nachholbedarf. Bei mir hat das Projekt 2 Jahre Vorlaufzeit gehabt um aus Gas, Brennstoffzelle, Hybridgeräten etc. etwas zukunftsfähiges auszuwählen. U.a. auch den für mich richtigen Heizungsbauer.

      Richtig ist, das bei 55°C die Wärmepumpen mit dem aktuell verbreitet eingesetztem Kältemittel (R410a) am Ende sind und darüber elektrisch zuheizen. Daher sinkt die Effizienz oder vielmehr das Verhältnis "thermisch abgegebene Leistung/elektrisch aufgenommener Leistung". R410a ist wegen seinem hohen GWP (1730) imho nicht mehr zeitgemäß.

      Falsch ist, daß es generell gilt! Seit ein paar Jahren gibt es Wärmepumpenhersteller, und werden mehr, die das etwas anspuchsvollere R290 (Propan), GWP=3, einsetzen. Anspruchsvoller, da der Gasdruck am Verdichterausgang höher ist und somit der Kältemittelkreislauf insgesamt höheren Gaskräften ausgesetzt ist. Weiter ist Propan leicht entflammbar, daher darf das Gerät nicht in geschlossenen Räumen aufgestellt werden. Vorteil ist das mögliche, höhere Temperaturniveau am Kondensator und somit am Wärmetauscher zum Heizkreis.

      Die Temperaturen von VL & RL alleine helfen Dir noch nicht. Eine weitere Frage ist, wieviel Leistung Dein Heizkreis kontinuierlich benötigt? Erst wenn die WP das nicht dauerhaft liefern kann wird es im Haus kälter aber nicht zwingend kalt.
      Thermische Energie von aussen wird nur zum Abtauen des Verdampfers benötigt. Das kann entweder der Heizkreis sein oder ein kleiner, seperater Puffer. Wenn alle Ventile im HK zu sind funktioniert das Abtauen nicht!

      Schau doch mal in Deinen Temperaturaufzeichnungen, wie oft und lang die VL Temperatur über 55°C war. Die erforderliche Wärmeleistung kannst Du näherungsweise über die Laufzeiten des Ölbrenners und dessen Düsenbestückung (=Ölverbrauch/Zeit) abschätzen.

      Das Projekt ist nicht hoffnungslos, die aktuelle Förderung in D von bis zu 45% bringt das ganze in eine ähnliche Größenordnung die für einen Umbau auf Gas fällig wäre. Und einen WW-Speicher kann man durch einen Hygienespeicher ersetzen, die >60°C im VL für WW Aufbereitung fallen damit auch weg. Wobei R290 das auch kann. Der COP sinkt etwas, aber das auch nur 1x pro Woche für 1 Stunde.
      VG

      posted in Off Topic
      U
      UlliJ
    • RE: Object Max Wert lässt setValue Wert nicht zu

      @mcm1957

      habe zwar den Kühlmodus nicht, nutze auch den Adapter nicht (ist jedoch noch installiert) aber trotzdem mal ein log angehängt.

      Habe dem Adapter vor dem Start den Objektbaum gelöscht. Zu Beginn kommt die Konfiguration der Anlage vom Portalserver

      20240819 konfig smartset.json

      Bei einzelnen Werten mit Auswahlmöglichkeit oder auch mehreren States, z.B. ID 27005000001 (aktueller Betriebsstatus des Heizgerätes) werden die min/max Werte vom Portal mitgeliefert.

      {"ValueId":27005000001,"SortId":4826,"SubBundleId":0,"ParameterId":27005000001,"IsReadOnly":true,"NoDataPoint":false,"IsExpertProtectable":false,"Name":"Betriebsart Heizgerät","Group":"410_Einstellungen und Anzeigen","ProtGrp":"HG <1>","ControlType":1,"Value":"15","ValueState":1,"HasDependentParameter":false,"ListItems":[{"Value":"0","DisplayText":"ODU Test","IsSelectable":true,"HighlightIfSelected":false},{"Value":"1","DisplayText":"Test","IsSelectable":true,"HighlightIfSelected":false},{"Value":"2","DisplayText":"Frostschutz HK","IsSelectable":true,"HighlightIfSelected":false},{"Value":"3","DisplayText":"Frostschutz Warmwasser","IsSelectable":true,"HighlightIfSelected":false},{"Value":"4","DisplayText":"Durchfluss gering","IsSelectable":true,"HighlightIfSelected":false},{"Value":"5","DisplayText":"Vorwärmung","IsSelectable":true,"HighlightIfSelected":false},{"Value":"6","DisplayText":"Abtaubetrieb","IsSelectable":true,"HighlightIfSelected":false},{"Value":"7","DisplayText":"Antilegionellenfunktion","IsSelectable":true,"HighlightIfSelected":false},{"Value":"8","DisplayText":"Warmwasser","IsSelectable":true,"HighlightIfSelected":false},{"Value":"9","DisplayText":"WW-Nachlauf","IsSelectable":true,"HighlightIfSelected":false},{"Value":"10","DisplayText":"Heizbetrieb","IsSelectable":true,"HighlightIfSelected":false},{"Value":"11","DisplayText":"HZ-Nachlauf","IsSelectable":true,"HighlightIfSelected":false},{"Value":"12","DisplayText":"Aktive Kühlung","IsSelectable":true,"HighlightIfSelected":false},{"Value":"13","DisplayText":"Kaskade","IsSelectable":true,"HighlightIfSelected":false},{"Value":"14","DisplayText":"GLT","IsSelectable":true,"HighlightIfSelected":false},{"Value":"15","DisplayText":"Standby","IsSelectable":true,"HighlightIfSelected":false},{"Value":"16","DisplayText":"Pump Down","IsSelectable":true,"HighlightIfSelected":false},{"Value":"17","DisplayText":"Nachlauf K","IsSelectable":true,"HighlightIfSelected":false},{"Value":"18","DisplayText":"Undefiniert","IsSelectable":true,"HighlightIfSelected":false},{"Value":"19","DisplayText":"Pool","IsSelectable":true,"HighlightIfSelected":false}],"MinValueCondition":"0","MaxValueCondition":"19","MinValue":0,"MaxValue":19,"TileParameterTagType":1}
      

      Das ganze log hier noch als file (Autorisierung und token entfernt)
      20240819 startup log smartset.json

      Aus meiner Sicht ist der Fehler auf der Portalseite. Da werden die falschen Grenzwerte geliefert. Betroffene könnten mal im Portal direkt versuchen den Wert umzustellen. Steht er da überhaupt zur Verfügung??? Dann sollte die Konfiguration der Anlage im Heizraum überprüft werden. Schließlich kommen die Daten vom ISM7 in der Heizung.
      Mangels Kühlmodus hier die Betriebsart der Heizung als Beispiel
      d9d0b9c2-2642-4197-87b5-bf3efb942651-image.png

      Wenn es da geht, vielleicht mal den Wolf support darauf ansetzen.

      Hoffe das hilft bei der weiteren Analyse
      VG

      posted in Skripten / Logik
      U
      UlliJ
    • RE: [Guide] Zwangsumstellung auf Smartmeter: Freut Euch drauf!

      hier auch... seit ein paar Tagen
      ad9d57cd-7b80-4073-836b-9c5941f25629-image.png

      Mobilfunkantenne liegt auf dem Schrank
      Lesekopf auf die IR-Schnittstelle gesetzt, Skript angepasst und siehe da es plaudert ausgiebigst vor sich hin
      2 Stunden nach der Installation war der Zähler beim Meßstellenbetreiber aktiv und die Pin online im Kundenportal verfügbar
      die HAN Schnittstelle wird bis auf weiteres ignoriert, ist alles da was gebraucht wird

      Jetzt nur noch warten bis der Zähler auch beim Stromversorger angekommen ist...
      Alles in allem top gelaufen!

      posted in Praktische Anwendungen (Showcase)
      U
      UlliJ
    • RE: Zeigt her eure Vis2

      @chiller
      so sehen bei mir die ersten Gehversuche aus

      fb37cc8c-a7e4-4ad0-bdcc-756e98c2ffcc-image.png
      348bd045-b8b1-4f0a-977d-218d92705131-image.png
      f04767a5-988d-4031-8842-f8ac97edd372-image.png
      e865ead0-6c92-450f-a6d5-fec169d39fd2-image.png
      unendliche Spielwiese und noch viel zu machen.
      Der intensive Gebrauch der Diagrammfunktionen in den Widgets "Istwert mit Diagramm" oder "Schalter oder Knöpfe" lässt meine InfluxDB reproduzierbar abschmieren. Ist aber ein anderes Ding.

      posted in Visualisierung
      U
      UlliJ
    • RE: Solarpanels als Vorsatzfassade vor Außendämmung?

      @martinp sagte in Solarpanels als Vorsatzfassade vor Außendämmung?:

      Ob es sich lohnt die Panels quasi als oberste Schicht in die Fassade zu Integrieren um beim Fassadenaufbau bei den abgedeckten Flächen Kosten zu sparen, scheint mir bei den Panelpreisen naheliegend.

      Die Idee scheint auf den ersten Blick gut, aber ich glaube sparen wirst Du nicht wirklich...was zu beweise wäre. Ist ja nur ein Szenario.

      Da gibt es IMHO zwei Herausforderungen:

      1. die normalen Module sind eine Kombi aus Aluminiumrahmen und Glas/Kunststoff und bekanntlich mit Abstand rundherum montiert. Die Befestigung begrenzt normalerweise Spannungen die durch thermische Ausdehnung entstehen. Zwischen Winter und Sommer hat man sicher ein delta T von 50-70°C, eher mehr. Damit verlängern/verkürzen sich die Rahmenprofile je Modul um ein paar mm. Über die Giebelhöhe kommen da dann schon cm zusammen
        damit zu
      2. Dicht von außen: widerspricht Nr. 1.
        Die anderen Funktionen der Fassade wie Dämmung, Dampfdurchlässigkeit etc. lassen wir mal weg.

      Es gibt von Velux ein Indachsystem für PV Anlagen (https://magazin.velux.de/de-DE/artikel/indach-photovoltaik). Ob das Fassadentauglich ist wäre zu klären.
      Ein zweiter Ansatz dafür könnte die Einfassung mit Dichtung von transparenten Modulen sein, wie sie z.B. für Dächer von Wintergärten, Carports oder ähnlichem gemacht wird. Aber die transparenten Module bestehen nur aus Glas und haben daher das Thema zu 1 nicht.
      Wahrscheinlich läuft es auf eine Art vorgehängte, hinterlüftete Fassade hinaus. Dafür braucht es dann wieder spezielle Befestigungssysteme, soll ja wieder 30 Jahre+ halten.
      Offen ist dann immer noch was mit den Teilen der Fassade passiert, die nicht mit Modulen abgedeckt werden können/sollen.

      über den Daumen ... gegenüber einer herkömmlichen Fassade ist da kein Preisvorteil. PV Module können die Fassadenfunktion nicht vollständig übernehmen, dafür sind sie auch nicht gedacht.
      VG

      posted in Off Topic
      U
      UlliJ
    • RE: Frage : Migrate MySQL nach Influxdb

      Moin zusammen,

      mein erster post in diesem Forum...
      Zu aller erst vielen Dank für diese tolle Plattform und den vielen die mit enormem Aufwand das smarte home nach vorne treiben, tolle Ideen weiter geben, absolut geile Visualisierungen bauen usw. Ich habe bislang selten ein Forum gesehen, in dem so konstruktiv und freundlich miteinander umgegangen wird...weiter so 👍

      Seit ca 2 Jahren betreibe ich Iobroker und habe bislang die Daten zuerst in MySQL und später dann in PostgreSQL abgelegt. Über die Zeit wurden die ganzen Abfragen und Diagramme mit Grafana nach und nach deutlich träger. Nach kurzer Testphase mit InfluxDB war die Frage geklärt😎
      Mit dem Wechsel auf InfluxDB stellt sich die Frage für den nicht Programmierer wie die Daten von alt nach neu...

      Die genannten Lösungen haben bei mir nicht zuverlässig funktioniert also die nächste Klappe

      1. In einem SQL GUI (phpmyadmin, HeidiSQL oder DBeaver, etc) oder auf der SQL-Konsole die zu exportierenden Daten in einem View zur Verfügung stellen
        Der View enthält alles was Influx benötigt
      create view xxx as
      SELECT datapoints.name,
      	ts_number.ack    as "ack",
          (ts_number.q*1.0)       as "q",
      	sources.name as "from",
          (ts_number.val*1.0)     as "value",
          (ts_number.ts*1000000) as "time"
      from ts_number 
      left join datapoints
      on ts_number.id=datapoints.id
      left join sources
      on ts_number._from=sources.id
      where datapoints.id>=70 and datapoints.id<=73 and q=0
      order by ts_number.ts desc;
      

      "xxx" Name des View anpassen
      in der WHERE Klausel die Datenpunkte entsprechend anpassen, einen Bereich wie hier oder auch eine einzelne id
      Für kleine Datenbestände kann die WHERE Klausel auch auf "WHERE q=0" gesetzt werden und über den View in einem Rutsch in Influx übertragen werden.
      Beispiel:
      59cd61b2-aab9-4cf5-8c14-f16d1e595125-grafik.png

      1. Python installieren und ggf. die Zusätze installieren
      • psycopg2 für PostgreSQL bzw. MySQLdb für MySQL
      • influxdb-client und influxdb.
      1. das Skript von Muntazir Fadhel "Easily Migrate Postgres/MySQL Records to InfluxDB" nehmen (modifizierte Variante hier)
      ### MySQL DB info ###
      #import MySQLdb
      #conn = MySQLdb.connect(host="localhost",  # your host, usually localhost
      #                     user="john",         # your username
      #                     passwd="megajonhy",  # your password
      #                     db="jonhydb")        # name of the data base
      
      
      ### PostgreSQL DB info ###
      import psycopg2
      import psycopg2.extras
      
      #####
      # connection data for PostgreSQL
      conn = psycopg2.connect("dbname=xxx user=xxx password=xxx host=xxx.xxx.xxx.xxx port =5432")
      #####
      
      # InfluxDB info #
      from influxdb import InfluxDBClient
      #
      #####connection data for InfluxDB#####
      influxClient = InfluxDBClient(host='xxx.xxx.xxx.xxx', port=8086, username='xxx', password='xxx', database='xxx')
      #####
      #influxClient.delete_database(influx_db_name)
      #influxClient.create_database(influx_db_name)
      
      # dictates how columns will be mapped to key/fields in InfluxDB
      schema = {
          "time_column": "time", # the column that will be used as the time stamp in influx
          "columns_to_fields" : ["ack","q", "from","value"], # columns that will map to fields 
          # "columns_to_tags" : ["",...], # columns that will map to tags
          "table_name_to_measurement" : "name", # table name that will be mapped to measurement
          }
      
      '''
      Generates an collection of influxdb points from the given SQL records
      '''
      def generate_influx_points(records):
          influx_points = []
          for record in records:
              #tags = {}, 
              fields = {}
              #for tag_label in schema['columns_to_tags']:
              #   tags[tag_label] = record[tag_label]
              for field_label in schema['columns_to_fields']:
                  fields[field_label] = record[field_label]
              influx_points.append({
                  "measurement": record[schema['table_name_to_measurement']],
                  #"tags": tags,
                  "time": record[schema['time_column']],
                  "fields": fields
              })
          return influx_points
      
      
      
      # query relational DB for all records
      curr = conn.cursor('cursor', cursor_factory=psycopg2.extras.RealDictCursor)
      # curr = conn.cursor(dictionary=True)
      #####
      # SQL query for PostgreSQL, syntax for MySQL differs
      # query provide desired columns as a view on the sql server
      
      # request data from SQL, adjust ...from <view name>
      curr.execute("Select * from xxx;")
      #####
      row_count = 0
      # process 1000 records at a time
      while True:
          print("Processing row #" + str(row_count + 1))
          selected_rows = curr.fetchmany(1000)
          influxClient.write_points(generate_influx_points(selected_rows))
          row_count += 1000
          if len(selected_rows) < 1000:
              break
      conn.close()
      
      

      Im Skript sind

      • in Zeile 15 die Datenbankverbindung für Postgre anzupassen,
      • in Zeile 22 die Datenbankverbindung für Influx
      • weiter unten Zeile 65 statt xxx ist der Name des Views einzutragen der auf der Datenbank mit der Abfrage aus 1 erzeugt wurde
        curr.execute("Select * from xxx;")
      • der Abschnitt "schema" gibt das mapping der Spalten vor und muss nur angepasst werden wenn die Spaltenbezeichner in der Abfrage aus 1 geändert werden
      • für die MySQL user sind die Verbindungsdaten in den Zeilen 2-6 auskommentiert und an eure Umgebung anzupassen.
      1. In der Python Umgebung das Skript starten...alle 1000 Zeilen/Datensätze kommt eine Fortschrittsmeldung. Während die Abfrage auf der SQL Seite läuft steht da "Processing row # 1"

      Bei umfangreichen Abfragen und je nach Umgebung kann das Ganze ein wenig dauern. Teilweise dauerten bei mir die SQL Abfragen bis zu 20min bei 20Mio Datensätzen (Nuc i3 mit 12GB für die SQL VM unter proxmox). Das Skript läuft zuverlässig und mehrere 10 Mio Datensätze von A nach B wurden migriert. Vielleicht kann es jemand brauchen und nochmals Danke für das tolle Projekt und die hilfsbereiten Menschen hier
      VG
      Ulli

      posted in ioBroker Allgemein
      U
      UlliJ
    • RE: EnigmaAdapter Timer-Liste auslesen

      @iobroker_user
      Hi Frank,

      bin auch nicht fit in Blockly und JS... aber üben hilft
      Versuch das mal nachzubauen, die Kommentare sollten erklären was passiert.
      Zeitplan ggf. an Deine Wünsche anpassen.

      4d74a51a-8911-42dd-b79f-358a42aa867a-grafik.png

      Das Json dazu sieht mit einem Timer so aus:
      ba1cb142-d0f6-4a5f-ae5f-5aece2836577-grafik.png

      Viel Vergnügen

      posted in Blockly
      U
      UlliJ
    • RE: Kühlschrank Thermostat umbauen / Smart machen

      @ilovegym sagte in Kühlschrank Thermostat umbauen / Smart machen:

      Der Verdampfer ist das hinten innen im Kuehlschrank, dort wird das durch den Druck des Verdichters(Kompressors) verfluessigte Kaeltemittel durch die Waerme im inneren des Kuehlschranks zum verdampfen gebracht.
      Aggregatszustand aendert sich, das Kaeltemittel dehnt sich aus und kommt in den Verfluessiger hinten aussen am Kuehlschrank, wo es die Waerme abgibt und sich wieder abkuehlt, durch den Verdichter laeuft, wieder komprimiert wird

      darf ich das etwas ergänzen? zum Teil OT
      der Verdampfer ist das hinten innen im Kühlschrank wo flüssiges Kältemittel verdampft (Isobutan/R600a hat einen Siedepunkt von -12°C) und dem Innenraum dadurch Energie entzieht. Der Verdichter saugt dieses Gas an, erhöht Druck und Temperatur, schiebt das in den Verflüssiger. Im Verflüssiger, hoher Druck und eingangs auch hohe Temperatur, wird das flüssige Kältemittel zunächst abgekühlt (Raum ist kälter als der Verflüssiger). Am Ausgang des Verflüssigers sitzt die Kapillare, hier wird das Gemisch aus Gas und teilweise kondensiertem Kältemittel entspannt (Druck gering und Temperatur niedrig) und geht damit vollständig in den flüssigen Zustand über... im Verdampfer geht das Spiel dann wieder von vorne los.

      Die Verdichter sind zum pumpen von Gas gedacht. Wenn flüssiges Kältemittel angesaugt wird werden die dünnen Ventilplättchen der Saugseite beim komprimieren verformt und damit zerstört (wird Flüssigkeitsschlag genannt). Die Abstimmung der Wärmetauscherflächen, Kältemittelmenge, Kapillare, Größe des Verdichters und Klimazone ist daher wichtig.
      Der Verdichter selbst ist eine Kolbenpumpe mit kleinem 1~Asynchronmotor mit Haupt- und Hilfswicklung. Die Hilfswicklung erzeugt durch die Anordnung im Wicklungspaket das Drehfeld um ein Startmoment zu generieren. Zwischen Thermostat und Motor sitzt ein PTC der die Hilfswicklung im Betrieb weg schaltet. Ist der Verdichter gestartet, wird der PTC warm und schaltet die Hilfswicklung bei Temperatur x aus um Energie zu sparen. Ist die Temperatur am Thermostat erreicht wird der Verdichter ausgeschaltet. Würde man jetzt den Stecker aus der Steckdose ziehen und wieder rein stecken passiert zunächst mal: nix. Der PTC ist noch zu warm, die Hilfswicklung ist ausgeschaltet und der Motor hat kein Startmoment. Gleichzeitig kann während des Abkühlens des PTC der Kältekreis den Druck im Verflüssiger über die Kapillare abbauen. Somit hat der Verdichter beim nächsten Einschalten keinen oder nur geringen Gegendruck...wenn denn alles richtig ausgelegt ist und nicht defekt oder gar undicht.

      Die Geschichte mit dem PTC gilt nur für ungeregelte Verdichter. Es gibt auch Schaltungen mit Relais am Verdichter, aber für Haushaltskühlschränke ist der PTC aus Kostengründen eigentlich Standard.

      @bananajoe sagte in Kühlschrank Thermostat umbauen / Smart machen:

      @ilovegym ah, danke, der Fühler sitzt also in dem Bereich wo die Kälte erzeugt wird.
      Ich habe eine Zwangspause von 15 Minuten nach dem Schalten eingebaut, die Positionierung des Temperatursensors wird noch optimiert.

      Wenn er immer einschaltet dann gut. Falls nicht ist der PTC oder der Thermostat schuld

      posted in Off Topic
      U
      UlliJ
    • RE: Wolf Link Home, ISM7i, ISM8i - Was ist nötig?

      @bongo
      das Ism7i=Home Link. Und das brauchst Du für das Portal oder den ism7mqtt.

      Beides gleichzeitig geht nicht. Das ISM7i kann entweder am Portal hängen oder lokal im LAN. Aber Du kannst jederzeit in beide Richtungen wechseln, wenn auf dem ism7i das Portal aktiviert oder eben deaktiviert wird.

      Für die Installation liest Du am Besten hier ganz weit unten (17.12.2023). Das ist die Installation und Einrichtung unter Linux und dürfte die meisten der Fragen schon beantworten. Zweite Quelle ist noch das github repository ism7mqtt.

      Dann solltest Du klar sein wo Du den Dienst installieren willst. Bei mir läuft das als kleiner LXC unter proxmox unabhängig vom iob oder anderen Diensten. Sollte grundsätzlich auch auf der iobroker Maschine laufen können.

      Der Baum der DP's sieht etwas seltsam aus, aber es ist alles da was am Bus der Wolf Steuerung hängt. Vermutlich sind die mqtt topics noch nicht entsprechend aufgesetzt (habe keine Ahnung davon). Geht und gut.

      4a210500-e53a-44d6-8c4e-0ab53b9895c0-image.png

      Steuern geht auch, zumindest bei den wenigen DP's für die ich das bislang gemacht habe (WW Aufbereitung Temperatur setzen und starten, Heizkurve absenken/anheben).

      Das es Login Schwierigkeiten mit dem Wolf-smartset gab ist völlig an mir vorbei gelaufen, da hatte ich schon gewechselt.
      Wenn Du Hilfe brauchst meld Dich einfach. Bin auch nicht der crack, habe das aber nach einem Hinweis relativ schnell am Rennen gehabt.
      VG
      Ulli

      posted in ioBroker Allgemein
      U
      UlliJ

    Latest posts made by UlliJ

    • RE: Anfängerfragen VIS-2

      @io2345
      es gäbe noch
      In der Übersichtsseite ein "inventwo universal widget" über jede Karte legen.
      Konfiguration:

      [
        {
          "tpl": "tplInventwoWidgetUniversal",
          "data": {
            "bindings": [],
            "type": "viewInDialog",
            "g_common": true,
            "mode": "singleButton",
            "direction": "row",
            "oid": "nothing_selected",
            "httpType": "send",
            "buttonSize": 110,
            "btnSpacing": 10,
            "countStates": 1,
            "dialogWidth": 500,
            "g_attr_group_type_view_in_dialog": true,
            "dialogHeight": 300,
            "dialogPadding": 10,
            "dialogBackground": "rgb(18, 18, 18)",
            "dialogTitleColor": "rgb(255,255,255)",
            "dialogTitleSize": 20,
            "dialogCloseButtonBackground": "rgba(255,255,255,0)",
            "dialogCloseButtonColor": "rgba(255,255,255,1)",
            "dialogCloseButtonSize": 14,
            "dialogBorderRadiusTopLeft": 12,
            "dialogBorderRadiusTopRight": 0,
            "dialogBorderRadiusBottomRight": 12,
            "dialogBorderRadiusBottomLeft": 0,
            "feedbackDuration": 0,
            "g_attr_group_click_feedback": true,
            "backgroundFeedback": "rgba(69, 86, 24, 1)",
            "outerShadowColorFeedback": "rgba(0, 0, 0, 1)",
            "contentBlinkInterval": 0,
            "g_attr_group_state_default": true,
            "outerShadowColor": "rgba(0, 0, 0, 1)",
            "colorPickerColorModel": "hex",
            "g_attr_content_color_picker": true,
            "colorPickerWidth": 200,
            "colorPickerHandleSize": 8,
            "colorPickerHandleMargin": 6,
            "colorPickerComponentsSpace": 12,
            "colorPickerDirection": "vertical",
            "colorPickerBorderWidth": 0,
            "colorPickerShowWheel": true,
            "colorPickerShowSaturation": true,
            "colorPickerShowValue": true,
            "textDecoration": "none",
            "g_attr_group_css_text": true,
            "textMarginTop": 0,
            "textMarginBottom": 0,
            "textMarginLeft": 0,
            "textMarginRight": 0,
            "contentType": "icon",
            "g_attr_group_css_content": true,
            "contentMarginTop": 0,
            "contentMarginBottom": 0,
            "contentMarginLeft": 0,
            "contentMarginRight": 0,
            "contentSize": 40,
            "contentRotation": 0,
            "contentMirror": false,
            "flexDirection": "column",
            "g_attr_group_css_alignment": true,
            "alignItems": "space-between",
            "textAlign": "start",
            "contentAlign": "center",
            "backgroundOpacity": 1,
            "g_attr_group_css_transparency": true,
            "contentOpacity": 1,
            "paddingLeft": 10,
            "g_attr_group_css_spacing": true,
            "paddingRight": 10,
            "paddingTop": 10,
            "paddingBottom": 10,
            "borderRadiusTopLeft": 12,
            "g_attr_group_css_border_radius": true,
            "borderRadiusTopRight": 0,
            "borderRadiusBottomRight": 12,
            "borderRadiusBottomLeft": 0,
            "borderSizeTop": 0,
            "g_attr_group_css_border": true,
            "borderSizeBottom": 0,
            "borderSizeLeft": 0,
            "borderSizeRight": 0,
            "borderStyle": "none",
            "outerShadowX": 2,
            "g_attr_group_css_outer_shadow": true,
            "outerShadowY": 2,
            "outerShadowBlur": 2,
            "outerShadowSize": 1,
            "innerShadowX": 0,
            "g_attr_group_css_inner_shadow": true,
            "innerShadowY": 0,
            "innerShadowBlur": 0,
            "innerShadowSize": 0,
            "view": "cardBalkonkraftwerk",
            "valueTrue": "1",
            "dialogFullscreen": true,
            "name": "navBKW",
            "comment": null,
            "class": null,
            "filterkey": null,
            "multi-views": null,
            "locked": null,
            "g_fixed": true
          },
          "style": {
            "bindings": [],
            "left": "21px",
            "top": "20px",
            "width": "532px",
            "height": "352px",
            "position": "absolute",
            "overflow": "visible",
            "z-index": 35,
            "opacity": "0.5"
          },
          "widgetSet": "vis-2-widgets-inventwo",
          "_id": "i000001"
        }
      ]
      

      Der z-Index muss größer sein als der der anderen widgets und die opacity auf 0 setzen.
      Anzeigt wird die Seite als Dialog im Vollbild

      als Alternative
      ein "inventwo universal widget" über jede Karte legen.
      Konfiguration:

      [
       {
         "tpl": "tplInventwoWidgetUniversal",
         "data": {
           "bindings": [
             "dialogWidth",
             "dialogHeight"
           ],
           "type": "viewInDialog",
           "g_common": true,
           "mode": "singleButton",
           "direction": "row",
           "oid": "nothing_selected",
           "httpType": "send",
           "buttonSize": 110,
           "btnSpacing": 10,
           "countStates": 1,
           "dialogWidth": "calc(100% - 50px)",
           "g_attr_group_type_view_in_dialog": true,
           "dialogHeight": "calc(100% - 50px)",
           "dialogPadding": 0,
           "dialogBackground": "rgb(18, 18, 18)",
           "dialogTitleColor": "rgb(255,255,255)",
           "dialogTitleSize": 0,
           "dialogCloseButtonBackground": "rgba(255,255,255,0)",
           "dialogCloseButtonColor": "rgba(255,255,255,1)",
           "dialogCloseButtonSize": 0,
           "dialogBorderRadiusTopLeft": 12,
           "dialogBorderRadiusTopRight": 0,
           "dialogBorderRadiusBottomRight": 12,
           "dialogBorderRadiusBottomLeft": 0,
           "feedbackDuration": 0,
           "g_attr_group_click_feedback": true,
           "backgroundFeedback": "rgba(69, 86, 24, 1)",
           "outerShadowColorFeedback": "rgba(0, 0, 0, 1)",
           "contentBlinkInterval": 0,
           "g_attr_group_state_default": true,
           "outerShadowColor": "rgba(0, 0, 0, 1)",
           "colorPickerColorModel": "hex",
           "g_attr_content_color_picker": true,
           "colorPickerWidth": 200,
           "colorPickerHandleSize": 8,
           "colorPickerHandleMargin": 6,
           "colorPickerComponentsSpace": 12,
           "colorPickerDirection": "vertical",
           "colorPickerBorderWidth": 0,
           "colorPickerShowWheel": true,
           "colorPickerShowSaturation": true,
           "colorPickerShowValue": true,
           "textDecoration": "none",
           "g_attr_group_css_text": true,
           "textMarginTop": 0,
           "textMarginBottom": 0,
           "textMarginLeft": 0,
           "textMarginRight": 0,
           "contentType": "icon",
           "g_attr_group_css_content": true,
           "contentMarginTop": 0,
           "contentMarginBottom": 0,
           "contentMarginLeft": 0,
           "contentMarginRight": 0,
           "contentSize": 40,
           "contentRotation": 0,
           "contentMirror": false,
           "flexDirection": "column",
           "g_attr_group_css_alignment": true,
           "alignItems": "space-between",
           "textAlign": "start",
           "contentAlign": "center",
           "backgroundOpacity": 1,
           "g_attr_group_css_transparency": true,
           "contentOpacity": 1,
           "paddingLeft": 10,
           "g_attr_group_css_spacing": true,
           "paddingRight": 10,
           "paddingTop": 10,
           "paddingBottom": 10,
           "borderRadiusTopLeft": 12,
           "g_attr_group_css_border_radius": true,
           "borderRadiusTopRight": 0,
           "borderRadiusBottomRight": 12,
           "borderRadiusBottomLeft": 0,
           "borderSizeTop": 0,
           "g_attr_group_css_border": true,
           "borderSizeBottom": 0,
           "borderSizeLeft": 0,
           "borderSizeRight": 0,
           "borderStyle": "none",
           "outerShadowX": 2,
           "g_attr_group_css_outer_shadow": true,
           "outerShadowY": 2,
           "outerShadowBlur": 2,
           "outerShadowSize": 1,
           "innerShadowX": 0,
           "g_attr_group_css_inner_shadow": true,
           "innerShadowY": 0,
           "innerShadowBlur": 0,
           "innerShadowSize": 0,
           "view": "cardBalkonkraftwerk",
           "valueTrue": "1",
           "dialogFullscreen": false,
           "name": "navBKW",
           "comment": null,
           "class": null,
           "filterkey": null,
           "multi-views": null,
           "locked": null,
           "g_fixed": true,
           "dialogCloseOnClickOutside": true
         },
         "style": {
           "bindings": [],
           "left": "21px",
           "top": "20px",
           "width": "532px",
           "height": "352px",
           "position": "absolute",
           "overflow": "visible",
           "z-index": 35,
           "opacity": "0.5"
         },
         "widgetSet": "vis-2-widgets-inventwo",
         "_id": "i000001"
       }
      ]
      


      Unterschied
      gerechnete Dialoggröße (annähernd Vollbild)
      ohne Kopfbereich und close-button
      Klick neben dem Dialog schließt den wieder

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345 sagte in Anfängerfragen VIS-2:

      Das weiß ich selber noch nicht so genau

      kann Jahre dauern...

      Die einzige Möglichkeit, die mir einfällt. Jede Karte die einen eigenen Menüeintrag hat muss es 2x geben

      1. als Karte für das view in widget anzeigen
      2. als Seite (wegen dem Menüeintrag) mit aktiver Navigation.
        fb1c6ffb-5bff-4871-868b-4eac5b486566-image.png

      Die Seiten sehen etwas leer aus... aber das wird, wenn Info's dazu kommen.
      Weiter kannst Du für die Übersichtsseite die Spaltenbreite auf 4 Karten anpassen. Dann werden die "cards" nicht so klein.

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345
      hat geklappt

      Habe scheinbar noch nicht richtig verstanden, wie Deine Anordnung der Seiten/"cards" aussehen soll🤔

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345
      stell doch bitte mal einen export des projektes hier rein. Ansonsten auch gerne meeting wie bereits angeboten.
      Die Zusammenfassung, für die Beginner, schreibst Du😊

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345

      verstanden, Vis macht genau was Du eingestellt hast.
      f4e06c06-0a32-4cea-961a-f5be910b2428-image.png
      Du hast bei jeder "Karte" die Navigation aktiv. Der Aufbau dieser Vis besteht aber aus Seiten die den Inhalt einzelner/mehrerer Karten darstellen, also Seiten innerhalb einer Seite. Die Navigation wird ausschließlich für die Hauptseiten aktiviert und nicht für jede Karte. Die Karten sind in der Vis-Struktur natürlich auch Seiten, haben aber keine Navigation.
      b7539905-6e84-45b1-823b-e2362ab72dbe-image.png

      Du willst andere Bereiche in der Vis anlegen.
      2 Möglichkeiten:

      • eine neue Seite mit aktiver Navigation anlegen, widgets zur Anzeige einer anderen view ("Karten")auf der Seite einfügen, die views zuweisen, alles so hinschieben bis es Dir gefällt

      oder

      • deine Seite EnergieMain kopieren, ein neuer Name für die Seite muß beim kopieren ohnehin vergeben werden, die Einstellungen bei der Navigation (Symbol, Position im Menü, etc) anpassen. Auf dieser neuen Seite den bereits vorhandenen "Karten" die neuen views/Seiten zuweisen.

      Letztere hat den Vorteil des minimalen Aufwandes für die Formatierung der Seite selbst und die Seiten unterscheiden sich nur durch den Inhalt, aber nicht in der Ansicht.

      Besser? ist wohl missverständlich mit den Seiten, views und cards/Karten😬

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345
      ich versuchs mal mit einem kleinen video

      • neue Seite anlegen
      • unter Register "Seite - Navigation"
      • Navi aktivieren
      • Name eintragen
      • Position im Menü festlegen
      • Symbol anlegen
        fertig...
        Navigation.gif

      wenn Du schon eine Seite im Menü hast, kannst Du auch die kopieren, umbenennen und in die vorhandenen "in widgets anzeigen" die neuen views (cards) einbinden. Hoffe ist jetzt etwas klarer🤔

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345
      jede der Unterkarte ist ein "im widget anzeigen". Ein anderer view wird über das dropdown rechts unter Allgemein-Aussicht zugeordnet
      viewinwidget-neu.gif

      @io2345 sagte in Anfängerfragen VIS-2:

      wie legt man die Position fest, wo die zu liegen kommen sollen?

      bei den Einstellungen der Seite "Energie-main" unter
      CSS Allgemein: "flex" einstellen

      Beim einzelnen "im widget anzeigen" unter CSS Allgemein:
      f286fb02-9a0f-4707-8875-a2049e7d68bb-image.png
      position: relative
      width: 100%
      Höhe: hier 508 (die Karte ist doppelt so hoch wie die anderen auf der Seite)

      Die Höhe aller Karten/Anwendungsleiste oben zusammen entspricht bei mir der Auflösung des Gerätes auf dem die vis im full-screen modus genutzt wird.
      Die Anzahl der dargestellten Spalten/widgets nebeneinander hatten wir oben schon mal. Das ist die min. Spaltenbreite die im aktuellen Fenster für ganze Spalten verfügbar sein muss um in der Darstellung eine Spalte hinzu/weg zu nehmen. Auch hier ist die Breite des Menüs zu berücksichtigen...einfach ausprobieren.

      Auch mit den anderen Werten bzgl. Größen, flex/block, Spaltenbreite der Seite kannst Du einfach mal spielen und die Auswirkungen bei Änderung der Fenstergröße anschauen.

      Reihenfolge der Karten kannst Du über die Pfeile an den widgets anpassen
      2025-07-31 141010.png

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345 sagte in Anfängerfragen VIS-2:

      Ich versuche aber vergeblich, das Symbol "mdiBatteryArrowDownOutline" anzeigen zu lassen. Irgendwas mache ich wohl falsch.

      das liegt vermutlich an dem Material Design Webfont Adapter. Die Symbole kommen Stück für Stück dazu und dann muss der Adapter/die Schriftdatei aktualisiert werden. Also nicht Dein Fehler... ein anderes icon nehmen oder wie oben aus 2 einzelnen zusammen setzen

      Auswahl und Anordnen von Widgets
      Auswahl mehrerer widgets geht über ein Fenster mit der Maus (links klick und ziehen) oder shift/strg+klick
      2025-07-31 072236.png
      wenn mehrere widgets ausgewählt sind hast Du oben verschiedene Ausrichtungsfunktionen zur Verfügung.

      Alternativ kannst Du rechts unter "CSS Alllgemein" mit

      • Position "none",
      • links "xxx" pos horizontal absolut in pixel
      • oben "xxx" pos vertikal absolut in pixel
        die Anordnung der widgets festlegen.
        Die Position/größe/breite/höhe kann auch eine Berechnung enthalten, wie z.B. calc(50% - 20px)
        50% der Seitengröße und nach links/oben um 20px versetzt (20px=halbe Größe des widgets) = das widget ist in der Mitte der Seite angeordnet
      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345 sagte in Anfängerfragen VIS-2:

      Ein Importfunktion für andere Visualisierungen gibt es wahrscheinlich nicht (?)

      nicht das ich wüsste🤔

      posted in Visualisierung
      U
      UlliJ
    • RE: Anfängerfragen VIS-2

      @io2345 sagte in Anfängerfragen VIS-2:

      Und wie funktioniert das mit der Navigation,

      jede Seite, die Du im Menü links haben möchtest, braucht einen Eintrag im Reiter "Seite" (1) unter "Navigation" (2). Da werden auch die Symbole, Farbe, der Name, Menüausrichtung, Reihenfolge etc. festgelegt
      a81af53a-8bc8-4f9a-bb35-c75c868e13ab-image.png

      Bei (3) legst Du die Spaltenbreite fest. Wird für das Verhalten bei Änderung der Fenstergröße gebraucht.

      (4) ist die Anwendungsleiste mit Farbeinstellung, Titel, etc

      posted in Visualisierung
      U
      UlliJ
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo