Seite 4 von 4

Re: OH3 - Ich bin frustriert...

Verfasst: 27. Jan 2021 06:48
von DerDude
harteknut hat geschrieben: 26. Jan 2021 16:49 Hier nochmal zu der Frage vom Dude:
Hier ist das ausführlich mit allen Möglichkeiten erklärt.
Super, Vielen Dank!
Ich hatte im Item als SemanticClass nur "Point" angegeben und nicht "Measurement".

openHAB 3 macht richtig Spaß.
Alles Stück für Stück zu entdecken und zu verstehen und zu sehen wie sich das SmartHome so langsam ganz neu aufbaut

Re: OH3 - Ich bin frustriert...

Verfasst: 27. Jan 2021 12:16
von harteknut
Ist doch schön, wenn ein Thema mit "Ich bin frustriert..." beginnt und mit "macht richtig Spaß" aufhört.
Auch wenn leider noch nicht der gleiche Nutzer war... :-)

Re: OH3 - Ich bin frustriert...

Verfasst: 28. Jan 2021 00:50
von peter-pan
harteknut hat geschrieben: 27. Jan 2021 12:16 Auch wenn leider noch nicht der gleiche Nutzer war...
..das kann man so nicht sagen ;)
OliverCJ hat geschrieben: 26. Jan 2021 16:37 Ha, es hat mal wieder geholfen... Man muss nur mal ein wenig Frust ablassen und danach läuft's irgendwie
...Das klingt doch schon ganz positiv und das nicht zuletzt wegen deiner Tipps. Danke dir nochmals.

Gruss
Peter

Re: OH3 - Ich bin frustriert...

Verfasst: 28. Jan 2021 05:55
von OliverCJ
Genau, die Tipps hier haben mir mal wieder sehr geholfen. Dafür einfach mal Danke!

So ganz langsam wird's...

Gesendet von meinem SM-N975F mit Tapatalk


Re: OH3 - Ich bin frustriert...

Verfasst: 14. Feb 2021 19:35
von Jan_Tiedemann
Ich habe mich nach zwei Wochen durch meine Openhab 2.5 Migration auch am Anfang schwergetan. Mittlerweile hat sich aber der Umstieg gelohnt. Auch die Zeit die ich seit paar Tagen investiert habe, um langsam weg von den Sitemaps zu kommen. Mal sehen die ersten Widgets habe ich mir schon vom community openhab forum angepasst und die Sites so konstruiert, dass diese auf dem Handy display bedienbar werden.

Animated GIF:
ezgif.com-gif-maker (1).gif

Das Weather Widget:
https://community.openhab.org/t/ui-widg ... her/106842


Das Spotify Widget:

Code: Alles auswählen

uid: Spotify_widget_1.00
tags:
  - popup
  - music
  - spotify
props:
  parameters:
    - description: Title for the widget
      label: Static Title
      name: title
      required: false
      type: TEXT
    - context: item
      label: Select a 'Spotify Player Bridge' (SpotifyPlayerBridge)
      name: prefix
      required: false
      type: TEXT
  parameterGroups: []
timestamp: Feb 14, 2021, 10:14:06 AM
component: f7-card
config:
  title: =props.title
  style:
    min-width: 270px
slots:
  default:
    - component: f7-row
      config:
        class: margin display-flex align-items-center
      slots:
        default:
          - component: f7-col
            config:
              width: 100
              xsmall: 30
              small: 50
              medium: 50
              large: 50
              xlarge: 50
            slots:
              default:
                - component: f7-row
                  config:
                    class: '=(items[props.prefix+"_AlbumImage"].state === "NULL")?"display-none" : "- margin-vertical - justify-content-center"'
                  slots:
                    default:
                      - component: oh-image
                        config:
                          item: =props.prefix+"_AlbumImage"
                          style:
                            width: 70%
          - component: f7-col
            config:
              width: 100
              xsmall: 30
              small: 50
              medium: 50
              large: 50
              xlarge: 50
            slots:
              default:
                - component: f7-row
                  config:
                    class: = (items[props.prefix+"_ActiveDeviceName"].state !== "NULL")?"display-none":"display-flex justify-content-center"
                  slots:
                    default:
                      - component: Label
                        config:
                          text: This Spotify Bridge is Unavailable
                - component: f7-row
                  config:
                    class: = (items[props.prefix+"_ActiveDeviceName"].state === "NULL")?"display-none":"display-flex justify-content-center"
                  slots:
                    default:
                      - component: Label
                        config:
                          text: =items[props.prefix+"_Kunstler"].state || "-"
                          style:
                            white-space: nowrap
                            overflow: hidden
                            font-size: normal
                            font-weight: bold
                            font-style: italic
                - component: f7-row
                  config:
                    class: = (items[props.prefix+"_ActiveDeviceName"].state === "NULL")?"display-none":"display-flex justify-content-center"
                  slots:
                    default:
                      - component: Label
                        config:
                          text: =items[props.prefix+"_Titel"].state || "-"
                          style:
                            white-space: nowrap
                            overflow: hidden
                            font-size: normal
                            font-weight: bold
                - component: f7-row
                  config:
                    class: = (items[props.prefix+"_ActiveDeviceName"].state === "NULL")?"display-none":"display-flex justify-content-center"
                  slots:
                    default:
                      - component: Label
                        config:
                          text: =items[props.prefix+"_AlbumName"].state || "-"
                          style:
                            white-space: nowrap
                            overflow: hidden
                            font-size: normal
                            font-style: italic
    - component: f7-row
      config:
        style:
          position: relative
          top: -10px
          height: 20px
        class:
          - justify-content-center
      slots:
        default:
          - component: f7-card
            config:
              noShadow: true
              class: margin display-flex align-items-center
              style:
                fontSize: 12px
                width: calc(100% - 80px)
            slots:
              default:
                - component: Label
                  config:
                    text: = items[props.prefix+"_TrackProgressmss"].state
                - component: f7-progressbar
                  config:
                    color: teal
                    progress: = 100 * items[props.prefix+"_TrackProgressms"].state / items[props.prefix+"_TrackDurationms"].state
                    style:
                      height: 10px
                    item: props.prefix+"_TrackProgressmss"
                - component: Label
                  config:
                    text: = items[props.prefix+"_TrackDurationmss"].state
    - component: f7-row
      config:
        class:
          - justify-content-space-around
          - display-flex
          - align-items-center
          - align-content-stretch
          - margin-top
      slots:
        default:
          - component: f7-icon
            config:
              f7: '=(props.prefix+"_ActiveDeviceShuffle") ? "shuffle" : ""'
              size: 20
              color: '=(items[props.prefix+"_ActiveDeviceShuffle"].state === "ON") ? "green" : ""'
              style:
                position: relative
                left: +7%
            slots:
              default:
                - component: oh-button
                  config:
                    action: command
                    actionItem: = props.prefix+"_ActiveDeviceShuffle"
                    actionCommand: '=(items[props.prefix+"_ActiveDeviceShuffle"].state !== "ON") ? "ON" : "OFF"'
                    style:
                      position: absolute
                      width: 100%
                      height: 100%
                      top: 0px
          - component: oh-player-item
            config:
              style:
                width: 150px
              item: =props.prefix+"_Fernbedienung"
              class:
                - display-flex
                - margin-
                - align-content-stretch
                - align-items-center
                - justify-content-space-around
          - component: f7-icon
            config:
              f7: '=(props.prefix+"_RepeatMode") ? (items[props.prefix+"_RepeatMode"].state === "context") ? "repeat" : (items[props.prefix+"_RepeatMode"].state === "track") ? "repeat_1" : "repeat" : ""'
              size: 20
              color: '=(items[props.prefix+"_RepeatMode"].state === "context") ? "green" : (items[props.prefix+"_RepeatMode"].state === "track") ? "green" : ""'
              style:
                position: relative
                left: -8%
            slots:
              default:
                - component: oh-button
                  config:
                    action: command
                    actionItem: = props.prefix+"_RepeatMode"
                    actionCommand: '=(items[props.prefix+"_RepeatMode"].state === "context") ? "track" : (items[props.prefix+"_RepeatMode"].state === "track") ? "off": "context"'
                    style:
                      position: absolute
                      width: 100%
                      height: 100%
                      top: 0px
    - component: f7-row
      config:
        class:
          - justify-content-space-around
          - display-flex
          - align-items-center
          - align-content-stretch
          - margin-top
      slots:
        default:
          - component: f7-card
            config:
              noShadow: true
              class: margin display-flex align-items-center
              style:
                height: 20px
                fontSize: 20px
                width: 100%
            slots:
              default:
                - component: f7-icon
                  config:
                    f7: speaker_3
                    class: margin-horizontal margin
                    size: 25
                - component: oh-slider
                  config:
                    label: true
                    style:
                      width: 75%
                      --f7-range-knob-color: rgba(122,122,122,0.8)
                      --f7-range-bar-size: 12px
                      --f7-range-bar-border-radius: 6px
                      --f7-range-knob-size: 16px
                      --f7-range-bar-bg-color: rgba(122,122,122,0.2)
                      --f7-range-bar-active-bg-color: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,0.6))
                      --f7-range-knob-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3)
                    item: =props.prefix+"_Lautstarke"
    - component: f7-row
      config:
        class: -justify-content-space-around -align-items-center -align-content-stretch
      slots:
        default:
          - component: f7-col
            config:
              noShadow: true
              class: resizable
              style:
                fontSize: 20px
                overflow: hidden
            slots:
              default:
                - component: oh-label-card
                  config:
                    icon: f7:hifispeaker
                    iconSize: 20
                    action: options
                    actionItem: =props.prefix+"_ActiveDevices"
                    item: =props.prefix+"_ActiveDevices"
                    style:
                      height: 100%
                    fontSize: small
          - component: f7-col
            config:
              noShadow: true
              class: resizable
              style:
                fontSize: 20px
                overflow: hidden
            slots:
              default:
                - component: oh-label-card
                  config:
                    icon: f7:music_note_list
                    iconSize: 20
                    action: options
                    actionItem: =props.prefix+"_Playlists"
                    item: =props.prefix+"_Playlists"
                    fontSize: small

Gesendet von meinem SM-G988B mit Tapatalk

Re: OH3 - Ich bin frustriert...

Verfasst: 14. Feb 2021 20:32
von int5749
Jan_Tiedemann hat geschrieben: 14. Feb 2021 19:35 Mal sehen die ersten Widgets habe ich mir schon vom community openhab forum angepasst und die Sites so konstruiert, dass diese auf dem Handy display bedienbar werden.
Sieht nett aus. Magst Du den Code mit uns teilen, damit wir diesen für unsere Bedürfnisse anpassen könnten?
Derzeit ist die Auswahl and Sources für OH3 Widgets/Pages nochh sehr mau.

VG INT5749

Re: OH3 - Ich bin frustriert...

Verfasst: 15. Feb 2021 13:12
von lenschith
Ich bin mittlerweile auch echt überzeugt von OH3 aber ich stoße immer wieder an meine Grenzen :)
Momentan habe ich das Problem mit den Alerts in den Cards. Ich möchte das Network Bindung verwenden und wenn ein Gerät offline ist sollte der Alert erscheinen, aber hier wird nur ON Ausgewertet. Gibt es eine Möglichkeit das irgendwie zu manipulieren. Ich hab das schon mit der State Description versucht aber das klappt nicht.

Hat noch jemand eine Idee/Tipp.

Danke.
Gruß Lenschi

Re: OH3 - Ich bin frustriert...

Verfasst: 15. Feb 2021 15:00
von scotty
Es gibt unter Model -> Item-Name -> Metadata -> State Description eine Rubrik Options. Mir ist nicht ganz klar, was du erreichen möchtest. Eventuell kannst du hier den passenden Befehl platzieren.
Mich würde das Ergebnis interessieren. Vielleicht meldest du dich im Fall eines Erfolgs noch einmal.

Gruß

Re: OH3 - Ich bin frustriert...

Verfasst: 15. Feb 2021 15:33
von peter-pan
...evtl. mit einer Regel und einem Dummy-Item (pro Gerät) ??!! Ich hab' mir sowas für meine Sonos-Boxen gemacht, da die keinen Schalter haben und ich gerne das Lautsprecher-Symbol in den Locations sehen will, wenn eine Box "dudelt".

Dazu habe ich die Sonos-Player-Items (PLAY/PAUSE) in eine Gruppe zusammengefasst. Das wären dann wahrscheinlich in deinem Fall deine Netzwerk-Items (ON/OFF).
Die Netzwerk-Items musst du dann mit strukturierten Namen versehen, z.B.: "net1_state" und ein passendes Dummy-Item dazu "net1_dummy".

Die Regel dazu könnte dann etwa so aussehen:

Code: Alles auswählen

rule "offline_check"
    when
        Member of gNet changed
    then
//        logInfo("Net cross"," Name : {} Status {} ", triggeringItem.name, triggeringItem.state)  // debug
        val vNetItem = triggeringItem.name.replace('state','dummy')
//        logInfo("Net cross"," vNetItem : {}", vNetItem)    // debug
        if (triggeringItem.state == ON) {
            postUpdate(vNetItem, "OFF")
            logInfo("Net cross"," Gerät {} ist online ", triggeringItem.name)
        }
        else if (triggeringItem.state == OFF) {
          postUpdate(vNetItem, "ON")
          logInfo("Net cross"," Gerät {} ist offline ", triggeringItem.name)
        }
end

Re: OH3 - Ich bin frustriert...

Verfasst: 15. Feb 2021 15:56
von lenschith
Zu scotty. Mein Ziel ist es, wenn ein Gerät das mit den Network Binding via ping überwacht offline geht, also der channel/item auf OFF geht, ich in den cards das Badget Alarm angezeigt bekomme. Das mit den Option hatte ich schon probiert aber ohne erfolg.

Zu Peter, das wäre ein Weg aber ich habe gehofft das ich mir das sparen kann, weil es ja schon items gibt. Aber die gehen bei offline eben auf OFF