Dimmer:
Code ist zu lang.
Kann nur 10.000 Zeichen...
Muss ich trennen ![]()
Für beide Generationen der Zentrale stehen nun die finalen Softwareversionen zur Verfügung (klassische Zentrale: 3.1.1111.0; Zentrale 2.0 1.2.44.498). Bitte beachte unsere Hinweise zur Aktualisierung der Zentrale und auch die Kontrollliste für den lokalen Betrieb.
Dimmer:
Code ist zu lang.
Kann nur 10.000 Zeichen...
Muss ich trennen ![]()
Rolladen:
uid: Cell_Shutter_Card_1
tags: []
props:
parameters:
- description: Small title on top of the card
label: Title
name: title
required: false
type: TEXT
- description: Header big sized
label: Header
name: header
required: false
type: TEXT
- description: Icon on top of the card
label: Icon
name: icon
required: false
type: TEXT
- description: HEX or rgba
label: Background Color
name: bgcolor
required: false
type: TEXT
- context: item
description: Shutter item to control
label: Item
name: item
required: false
type: TEXT
parameterGroups: []
timestamp: Jan 28, 2023, 11:41:32 AM
component: f7-card
config:
style:
background-color: "=props.bgcolor ? props.bgcolor : ''"
border-radius: var(--f7-card-expandable-border-radius)
box-shadow: 5px 5px 10px 1px rgba(0,0,0,0.1)
height: 120px
margin-left: 5px
margin-right: 5px
noShadow: false
padding: 0px
slots:
content:
- component: f7-block
config:
style:
display: flex
flex-direction: row
left: 16px
position: absolute
top: -5px
slots:
default:
- component: f7-icon
config:
f7: =props.icon
size: 18
style:
margin-right: 10px
visible: "=props.icon ? true : false"
- component: Label
config:
style:
font-size: 12px
margin-top: 0px
text: "=props.title ? props.title : ''"
- component: f7-block
config:
style:
bottom: -15px
flex-direction: row
left: 16px
position: absolute
slots:
default:
- component: Label
config:
style:
font-size: 17px
font-weight: 600
margin-left: 0px
margin-top: 0px
text: "=props.header ? props.header : 'Set Props'"
- component: f7-block
config:
style:
bottom: -35px
flex-direction: row
left: 16px
position: absolute
slots:
default:
- component: Label
config:
style:
font-size: 12px
margin-left: 0px
margin-top: 0px
text: "=Number(items[props.item].state) === 0 ? 'Geöffnet ' + (items[props.item].state) + '%' : 'Geschlossen ' + (items[props.item].state) + '%'"
- component: oh-button
config:
action: command
actionCommand: UP
actionItem: =props.item
iconColor: red
iconF7: arrow_up_circle
iconSize: 35
style:
background: transparent
height: 35px
position: absolute
right: 10px
top: 12px
- component: oh-button
config:
action: command
actionCommand: STOP
actionItem: =props.item
iconColor: red
iconF7: stop_circle
iconSize: 29
style:
background: transparent
height: 29px
position: absolute
right: 13px
top: 46px
- component: oh-button
config:
action: command
actionCommand: DOWN
actionItem: =props.item
iconColor: red
iconF7: arrow_down_circle
iconSize: 35
style:
background: transparent
height: 35px
position: absolute
right: 10px
top: 74px
Alles anzeigen
Alles anzeigenHallo Frank,
das SHC2-Widget würde mich auch interessieren!
Grüße
Daniel
Moin Daniel!
Dann fange ich mal an.
Vorbereitung:
- Die beiden Bilder im Anhang müssen auf dem Pi in das Verzeichnis "openHAB-conf/html/icons".
- HINWEIS: Bitte die Bilder als "PNG" ablegen!
- Wenn der Unterordner icons noch nicht da ist, lege ihn einfach an
Anleitung:
- in der OH3-Administration unter "Entwickler-Tools" den Punkt "Widgets" auswählen
- hinzufügen eines neuen Widgets mit dem blauen Punkt mit dem "PLUS-Zeichen" unter rechts
- Dann den vorgefertigten Code durch folgenden ersetzen
uid: Livisi_SHC-Card
tags:
- Livisi
- System
props:
parameters:
- description: Titel
label: Titel
name: title
required: false
type: TEXT
- description: Tag-Icon für Card
label: Bild ohne Suffic in static/icons
name: bild_day
required: false
type: TEXT
- description: Nacht-Icon für Card
label: Bild ohne Suffic in static/icons
name: bild_night
required: false
type: TEXT
- context: item
description: Item für Betriebsstatus
label: Item 1
name: item_1
required: false
type: TEXT
- description: Betriebsstatus 1 F7-Icon
name: icon_1
required: false
type: TEXT
- description: Betriebsstatus TEXT
name: text_1
required: false
type: TEXT
- context: item
description: Item für CPU-Last
label: Item 2
name: item_2
required: false
type: TEXT
- description: CPU-Last Icon
label: F7 Icon
name: icon_2
required: false
type: TEXT
- description: CPU-Last TEXT
name: text_2
required: false
type: TEXT
- context: item
description: Item für CPU-Belegung
label: Item 3
name: item_3
required: false
type: TEXT
- description: CPU-Belegung Icon
label: F7 Icon
name: icon_3
required: false
type: TEXT
- description: CPU-Belegung TEXT
name: text_3
required: false
type: TEXT
- context: item
description: Item für HD-Belegung
label: Item 4
name: item_4
required: false
type: TEXT
- description: HD-Belegung Icon
label: F7 Icon
name: icon_4
required: false
type: TEXT
- description: HD-Belegung TEXT
name: text_4
required: false
type: TEXT
parameterGroups: []
timestamp: Feb 12, 2023, 4:24:55 PM
component: f7-card
config:
style:
border-radius: 20px
box-shadow: var(--f7-card-expandable-box-shadow)
slots:
default:
- component: oh-link
config:
style:
height: 140px
border-radius: 20px
display: flex
flex-direction: column
align-items: start
justify-content: flex-start
slots:
default:
- component: oh-link
config:
text: =props.title
style:
color: "=themeOptions.dark === 'dark' ? 'white' : 'grey'"
margin: 0px 20px
font-size: 18px
font-weight: bold
- component: oh-link
config:
text: = props.text_1 + ' ' +items[props.item_1].state
iconF7: "=props.icon_1 ? props.icon_1 : ''"
iconSize: 18
color: "=themeOptions.dark === 'dark' ? 'white' : 'black'"
style:
margin: 10px 20px
font-size: 15px
font-weight: bold
- component: oh-link
config:
text: "=props.text_2 ? props.text_2 + ' ' + items[props.item_2].state : items[props.item_2].state"
iconF7: "=props.icon_2 ? props.icon_2 : ''"
iconSize: 18
color: "=themeOptions.dark === 'dark' ? 'white' : 'black'"
style:
margin: 0px 20px
font-size: 15px
font-weight: bold
- component: oh-link
config:
text: "=props.text_3 ? props.text_3 + ' ' + items[props.item_3].state : items[props.item_3].state"
iconF7: "=props.icon_3 ? props.icon_3 : ''"
iconSize: 18
color: "=themeOptions.dark === 'dark' ? 'white' : 'black'"
style:
margin: 0px 20px
font-size: 15px
font-weight: bold
- component: oh-link
config:
text: "=props.text_4 ? props.text_4 + ' ' + items[props.item_4].state : items[props.item_4].state"
iconF7: "=props.icon_4 ? props.icon_4 : ''"
iconSize: 18
color: "=themeOptions.dark === 'dark' ? 'white' : 'black'"
style:
margin: 0px 20px
font-size: 15x
font-weight: bold
- component: oh-image
config:
style:
height: 120px
left: 170px
opacity: 1
position: absolute
top: 10px
url: "=themeOptions.dark === 'dark' ? '/static/icons/' + props.bild_night + '.png' : '/static/icons/' + props.bild_day + '.png'"
Alles anzeigen
- danach das Speichern mit CTRL+S (oder Klick oben rechts) nicht vergessen
- Nun in den Einstellungsbereich zu den Pages wechseln
- Am Besten eine neue "Row" und eine neue "Column" anlagen.
- Widget hinzufügen
- über "Configure Widget" kannst du dann das Widget ein wenig anpassen (Icons/Text) - siehe Bilder im Anhang
- Ich passe noch die "Column Options" noch wie im Anhang gezeigt an
Als Icons habe ich die F7-Icons gewählt. Für die CPU-Last habe ich z. B. "waveform_path" genommen.
Die Icons für F7 findest du hier: https://framework7.io/icons/
Man kann die Ansicht für sich auch immer ein wenig anpassen.
Fertig. ![]()
Sollte die Anleitung für dich zu ausführlich sein: gut!
Sollte die Anleitung nicht ausreichen, melde dich nochmals. Dann helfe ich weiter. ![]()
Viele Grüße und viel Spass
Frank
Hey, wer bist du, und was ist aus dem Typ geworden der hier vor 2Monaten aufgeschlagen ist 🙈😉😂
Das Widget für die SHC ist glaub ich aber noch nicht ganz richtig oder? 2% ist die CPU und 53% der RAM oder? Weil eine SHC 2.0, die 53%CPU Last hat fliegt gerade zum Mond würde ich sagen🙈
LG und viel Spaß weiterhin 🖖🏻du Neerd
Moin Manuel!
Doch, das Widget ist korrekt: die CPU-Last sind die 2%, 53% ist die Hauptspeicherbelegung, die 67% die HD-Belegung... So die Item-Beschreibung.
Und wo der andere Typ hin ist????
Keine Ahnung. ![]()
Ohne Euch wäre ich nicht da, wo ich aktuell bin.
Danke.
Gruß
Frank
Hallo Metallica!
Was steht denn aktuell zum Verkauf und zu welchen Preisen?
Gruß Frank
Hier noch die Nachtsichtig!
Hallo liebes Forum!
Nun möchte ich auch mal ein paar Widgets von mir zeigen.
![]()
Ich habe mir mal eines für die SHC gebaut, für unsere Wallbox und für E-Autos.
Bei dem Wallbox-Widget ist ein Bild unserer Wallbox zu sehen, wenn kein Auto dort steht, wenn der BMW lädt oder wenn der EQA lädt.
Alle haben immer einen Tag und einen Nachtmodus.
Die Widgets für die Alarmanlage und BMZ reagieren auch auf die Auslöser für den Alarm und ändern auch die Symbole.
Die Widgets für INNEN und AUSSEN habe ich mir aus einem anderen Forum geholt und ein wenig modifiziert.
Dort sind auch für die Heizungssteuerung, für Dimmer-Lampen spezielle Widgets drin.
Wenn euch was gefallen sollte, stelle ich euch gerne den Code zur Verfügung.
Viele Grüße
Frank
War aber nur eine kurze DAU-Phase und echt keine Absicht. 🙈
Ha!
Fehler gefunden. Ich bin alle Gruppen durchgegangen.
Eine Gruppe hat auf sich selbst verwiesen.
Da ich aber das BMW-Binding neu gemacht habe, muss ich jetzt 62 Channels anpassen. Die sind alle invalid. Ist jetzt nur noch Fleißarbeit. Dann werden auch wieder die Werte in der Sitemap angezeigt.
Alter..... ich entwickle mich irgendwann mal zum openhab Profi... zumindest ist die Lernkurve exorbitant......
Noch ein wenig mehr und ich muss mir ein Sauerstoffgerät holen. ![]()
Ich bin selbst über mich erstaunt, wie schnell das alle geht.. ![]()
Hi Manuel,
danke für den Hinweis.
Habe ich mir schon angesehen (das oberste- ich habe 6 auf einer Ebene) darunter kommen dann andere Gruppen.. Daran lag es nicht. Habe auch mein ganzes BMW-Binding gelöscht, neu gemacht. Nun muss ich leider meine Sitemap komplett neu machen, weil die Daten raus sind. ![]()
Na toll.. Dann habe ich jetzt 430 Items vor mir, die ich mir ansehen muss, ob da ein Item auf sich selbst zeigt, richtig? Mist.
Danke... aber erst recht: Danke an alle, die mich dabei unterstützt haben, den Einstieg hinbekommen. Da waren hier einige, die mich zwar am Anfang als "Querulant" wahrgenommen haben...
Das lag einfach nur daran, dass der Einstieg doch sehr komplex ist.
Ich bin auch noch in openhab-Foren unterwegs, die ich "auch gequält" habe mit vielen Fragen.
Nun - übrigens gestern habe ich auch das BMW-Binding per jar-Datei manuell eingebunden bekommen und es läuft sogar sauber. Nun ist auch unser zweites Auto im "Smarthome" angekommen.
Leider habe ich mir gestern mein Semantic-Model zerschossen.
Es lädt einfach nicht mehr.
Bin jetzt auf der Suche nach dem Fehler.
Habe gelesen, dass man in einer json.db war nachlesen kann... aber mal sehen..
Habe noch nicht angefangen... Schreibe gerade meine Szenarien auf DSL-Rules um. Mit VSC ![]()
Alarmanlage, Heizungssteuerung habe ich fertig.
Das war glaube ich auch das Schwierigste.
Die Lampensteuerung, Fernbedienungen, Taster das ist glaube ich alles Kleinkram.
Habe zwar noch immer nur eine Sitemap auf dem Handy und keine schöne Page mit Widgets und so... aber egal... Ich kann alles steuern, ich kann schon vieles Programmieren.
Vielleicht, wenn ich mal wieder mehrere Stunden am Stück zeit habe.... vielleicht baue ich das dann mal alles auf SSD um.
Habe noch das Thema vor mir, wie ich einen Temperatursensor EWELINK einbaue... der ist noch nicht auf TASTOMA gelasht... mal sehen, ob ich das auch irgendwie hinbekomme.
Dann muss ich schauen, wie ich meine ARLO-Kameras eingebunden bekommen.
Und dann glaube ich auch noch den BMW... das klappt immer noch nicht. ![]()
Danke...Hilft leider nicht weiter. Meine Probleme liegen nicht da drin.
Das, was dort beschrieben wird, ist ein ganz einfache ding. Darüber bin ich ja schon lange hinaus.
Ich glaube auch, dass es auch nicht so einfach ist, meine Probleme zu beschreiben, bzw. alle wissen wie es geht, aber keiner kann es mir erklären. ![]()
Für mich ist doch eine Rule eine Regel. Die baue ich in der UI. Ich lege den Trigger fest.
(Beispiel: Tastendruck auf Wandtaster)
Dann kommt das Script - also die Anweisungen - was passieren soll, wenn der Trigger ausgelöst hat.
(Beispiel: Wenn der Zustand_Alarmanlage = OFF dann setze den Zustand_Alarmanlage auf ON, wenn der Zustand_Alarmanlage = ON dann setze den Zustand_Alarmanlage auf OFF.
Allein hieran sitze ich etliche Stunden, weil immer nur die erste Anweisung ausgeführt wird, die zweite wird grundsätzlich ignoriert.
Ich werde mir wohl mal jemanden suchen müssen, der hier in der Gegend sitzt, der mir mal das VSC zeigen kann. Werde mich wohl doch mal bei Facebook anmelden müssen, um Hilfe zu bekommen. Ich kenne niemanden im Verwandten, Bekannten, Kollegenkreis der das macht, was wir hier machen.
![]()
Update: Ich habe es gerade das erste mal geschafft, eine Rule in DSL mit VSC zu erstellen. War ein langer und steiniger Weg.... aber das ist glaube ich mein Erfolgserlebnis für das Jahr 2023.... da kann nicht mehr viel besseres kommen. ![]()
Also ich benutze auch schon seit mehren Jahren VSC mit der OH-Extension. Wobei ich neulich feststellen musste, das ich ein Problem, was ich einfach nicht mit VSC lösen konnte recht einfach mit Blockly in der RulesDSL umsetzen konnte. Wer mit VSC nicht so richtig klar kommt dem empfehle ich mal ein Blockly Tutorial, Blockly ist meiner Meinung nach auch nicht gerade selbst erklärend - aber wenn mal es erst einmal verstanden hat ein mächtiges Tool.
Vielen Dank. Das Problem ist, dass Blockly nur nach Javascript übersetzt, nicht nach DSL. Daher habe ich mir versucht, trotz "nicht selbsterklärend" hier mal was zusammenzuflicken, damit ich die Syntax rausbekommen und versuche dann, das ganze in eigene Rules in Java einzubauen.
So versuche ich gerade JavaScript zu lernen.
Habe gestern 4 Stunden daran gesessen, eine if then else Anweisung zu bauen, die auch funktioniert.
Leider ist es so, dass immer nur die if-then Anweisung ausgeführt wird, die else leider nicht.
Wenn ich das per Blockly dann mache, geht es. Wenn ich das dann mit copy-paste übernehme geht es.
Wenn ich den Code ZEICHEN FÜR ZEICHEN manuell eintrage in ein Script, geht wieder nur die if then.... else nicht.
Da muss doch ein Fehler drin sein.... Ich habe in keiner Programmiersprache so lange gebraucht, um einfache Programmcodes zu schreiben wie in java oder DSL.
Auch ist einfach für mich nicht klar, wann man etwas in Hochkomma, in Anführungszeichen oder auch mal ohne setzen muss.
Da gibt es wohl keine Durchgängen Regeln.
Mal wird ein Item ohne Hochkomma angegeben (z. b. beim Auslesen der Daten), wenn ich aber ein Wert in ein Item schreiben will, muss man das item in ' einbinden.
Ich habe es wirklich versucht mit VSC, aber ich bekomme es nicht hin. In VSC habe ich meinen Meister gefunden.
Mein IQ reicht nicht für diesen Editor.
Eigentlich möchte ich meine Rules direkt in der UI haben und nicht extern, auch wenn es einfacher wäre, nur regelmässig ein Backup der OpenHAB-config zu machen als ein ganzes Backup.
Aber leider muss ich mich da echt der fehlenden Dokumentation/Anleitung von VSC geschlagen geben. Ich habe bisher zwar einiges gefunden, wie man VSC einrichtet auch mit der OH-Erweiterung. DAs habe ich. Aber wie baut man eine Rule in VSC auf? Ich habe es auch mit Beispielen aus dem OH-Forum ausprobiert, aber irgendwie ist da immer ein Fehler drin, den ich nicht finde und damit funktionieren die auch nicht in OH.
Wo findet man nun Infos zur Programmierung in DSL? Sie scheint einfacher zu sein als Java.
Hallo liebes Forum!
Ich bin ja noch nicht lange bei der OH3-Fraktion, aber ich quäle mich wirklich durch diese schlechten Programmiermöglichkeiten.
Auch wenn man andere objektorientierte Sprachen beherrscht, so ist doch JavaScript und DSL wirklich was anderes. Leider gibt es auch keine wirklichen Hilfen. Die Foren sind meist nur die Oldschool-OH-2.x Programmierer, die mangels damaligen Editors meist mit VSC textbasiert programmieren. Leider hilft mir das auch nicht.
Auch die Blockly-Programmierung ist für mich nichts… weil das was ich brauche, geht damit nicht. ![]()
Ich bin auf der Suche nach einer ordentlichen Beschreibung von Java/DSL-Routinen für die Programmierung der Smarthome-Komponenten. Eigentlich geht es meistens um „if-then-else“, items auslesen, items mit Daten/Status versehen, Timer, Variablen definieren und Mail/OHB/WhatsApp-Messages.
Daher mal die Frage: womit programmiert ihr und wie habt ihr es gelernt bzw. Wo habt ihr euch in die Sprache eingelesen?
Danke, Gruß und euch allen einen schönen Abend.
Frank
Check... hatte die gleiche SSD bestellt, nur einen anderen Adapter. Sollte diese Woche kommen. ![]()
Da hast du recht! Ich schau mal, ob ich das auch mal probiere. 20 Euro geht! 👍😉
Danke für den Hinweis.
Ja klar. Das meinte ich ja. Alles ohne Karte.
Ich habe ein Backup von der Karte gemacht und das liegt im Mac/Cloud/Timemachine. check.
Wie machst du die Sicherungen der openhab-config auf dem Pi? Automatisch über eine art Time-Machine?
Oder speicherst du nur die Daten aus dem Ordner "openhab-Conf" dann in einem Ordner auf der SSD?
Was wird denn alles in dem Ordner Conf gespeichert? Bei mir ist da so wenig drin.
Das müsste man doch auch mit dem "Apple Automator" funktionieren.
Wenn ich es richtig verstanden habe, sollte man von der SD-Karte immer ein Backup machen, wenn man ein neues Binding hinzugefügt hat. Das würde ja teils gegen Deine Variante sprechen, da bindings besser über das img eingespielt werden als über den Conf-Ordner.
Rektore geht aber auch mit dem Balea Etcher oder sollte - wenn ich es richtig gesehen habe -auch mit dem ApplePiBaker gehen.
Der USB-Stick verträgt aber nicht mehr Schreibzyklen als eine SD-Karte und ist ggf. noch langsamer.
Daher habe ich auf eine SSD gesetzt.
Bei Amazon eine kleine Intenso mit SATA-USB Adapter. Hat zusammen gerade 20€ gekostet.
Aaaaahhhh... Das macht Sinn.. Stimmt. Müsste doch dann auch möglich sein, dass man das Backup direkt auf dem mac machen kann, ohne die Karte entnehmen zu müssen, oder? Kannst du auf die SSD direkt vom Mac zugreifen?