Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Habpanel Custom Widget Frage

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Habpanel Custom Widget Frage

Scheduled Pinned Locked Moved Visualisierung
vis
9 Posts 2 Posters 2.1k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fisch
    wrote on last edited by fisch
    #1

    Sorry,

    habe dummerweise meine Frage in Allgemein gepostet...Vielleicht kann das ein MOD hier her verschieben Vielen Dank...

    https://forum.iobroker.net/topic/33391/habpanel-shutter-widget-aussehen-verändern

    1 Reply Last reply
    0
    • CrunkFXC Offline
      CrunkFXC Offline
      CrunkFX
      Forum Testing
      wrote on last edited by
      #2

      @fisch Könntest du auf den Weißen Rahmen verzichten?

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Reply Last reply
      0
      • CrunkFXC Offline
        CrunkFXC Offline
        CrunkFX
        Forum Testing
        wrote on last edited by CrunkFX
        #3

        @fisch
        Einmal die Ansicht mit weißem Rahmen:
        Bild Text

        <style>
        
        div.shutterWidget {
          border: 1px solid white;
          border-radius: 15px;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          position: absolute;
          background-color: initial;
          top: 0%;
          left: 0%;
          width: 100%;
          height: 100%;
          align-items: center;
        }
        
        div.shutterWidget div {
          border: px solid white;
          width: 100%;
          text-align: center;
          align-items: center;
          background-color: inherit;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          justify-content: center;
          font-size: 1em;
        }
        
        div.shutterWidget button {
          border: 0px solid white;
          background: rgba(0, 0, 0, 0.5);
          color: white;
          height: 1.5em;
          width: 1.5em;
          float: none;
          font-size: 3em;
          margin-right: 12px;
          padding: 0 0 0 0;
        }
        
        div.shutterWidget span {
          border: 0px solid white;
          width: 100%;
          height: 75%;
          align-items: center;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          padding-top: 12px;                                 /* Padding in Top ändern. Dieser Wert ist der Abstand zwischen Buttons und Text */
        }
        
          </style>
        
        
        <div class="shutterWidget">
        
        <div> {{ngModel.name}}</div>
        
        <span>
        
        <button ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '0')"> <i class="glyphicon glyphicon-menu-up"></i> </button>
        
        <button ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '2')">
        
        <widget-icon iconset="'eclipse-smarthome-classic'" icon="'blinds'" size="45"
        
        state="itemValue(config.blind_item)" />
        
          
        
          </button>
        
            <button style="margin-right: 0" ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '1')"> <i class="glyphicon glyphicon-menu-down"></i>    </button>
        
        </span>
        
        
        
        

        Und einmal die Ansicht ohne:
        Bild Text

        <style>
        
        div.shutterWidget {
          border: 0px solid white;                           /* Rahmen deaktivieren */
          border-radius: 15px;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          position: absolute;
          background-color: initial;
          top: 30%;                                          /* Textabstand zum Oberen Rand */
          left: 0%;
          width: 100%;
          height: 100%;
          align-items: center;
        }
        
        div.shutterWidget div {
          border: px solid white;
          width: 100%;
          text-align: center;
          align-items: center;
          background-color: inherit;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          justify-content: center;
          font-size: 1em;
        }
        
        div.shutterWidget button {
          border: 0px solid white;
          background: rgba(0, 0, 0, 0.5);
          color: white;
          height: 1.5em;
          width: 1.5em;
          float: none;
          font-size: 3em;
          margin-right: 12px;
          padding: 0 0 0 0;
        }
        
        div.shutterWidget span {
          border: 0px solid white;
          width: 100%;
          height: 75%;
          align-items: center;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          padding-top: 12px;                                 /* Padding in Top ändern. Dieser Wert ist der Abstand zwischen Buttons und Text */
        }
        
          </style>
        
        
        <div class="shutterWidget">
        
        <div> {{ngModel.name}}</div>
        
        <span>
        
        <button ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '0')"> <i class="glyphicon glyphicon-menu-up"></i> </button>
        
        <button ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '2')">
        
        <widget-icon iconset="'eclipse-smarthome-classic'" icon="'blinds'" size="45"
        
        state="itemValue(config.blind_item)" />
        
          
        
          </button>
        
            <button style="margin-right: 0" ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '1')"> <i class="glyphicon glyphicon-menu-down"></i>    </button>
        
        </span>
        
        
        
        

        Kombiniert man Rand mit Text Padding verschiebt sich das Icon in der Mitte. Ich hab leider zu wenig CSS erfahrung um zu beurteilen warum.
        Bild Text
        Falls du damit Leben kannst:

        <style>
        
        div.shutterWidget {
          border: 1px solid white;                           
          border-radius: 15px;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          position: absolute;
          background-color: initial;
          top: 0%;                                         
          left: 0%;
          width: 100%;
          height: 100%;
          align-items: center;
        }
        
        div.shutterWidget div {
          border: px solid white;
          width: 100%;
          text-align: center;
          align-items: center;
          background-color: inherit;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          justify-content: center;
          font-size: 1em;
          margin: 5% 0 0 0;                                  /* Abstand zwischen Text Und Rahmen */
        }
        
        div.shutterWidget button {
          border: 0px solid white;
          background: rgba(0, 0, 0, 0.5);
          color: white;
          height: 1.5em;
          width: 1.5em;
          float: none;
          font-size: 3em;
          margin-right: 12px;
          padding: 0 0 0 0;
        }
        
        div.shutterWidget span {
          border: 0px solid white;
          width: 100%;
          height: 75%;
          align-items: center;
          display: block;                                    /* flex in block ändern um Columns in Rows zu ändern */
          padding-top: 12px;                                 /* Padding in Top ändern. Dieser Wert ist der Abstand zwischen Buttons und Text */
        }
        
          </style>
        
        
        <div class="shutterWidget">
        
        <div> {{ngModel.name}}</div>
        
        <span>
        
        <button ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '0')"> <i class="glyphicon glyphicon-menu-up"></i> </button>
        
        <button ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '2')">
        
        <widget-icon iconset="'eclipse-smarthome-classic'" icon="'blinds'" size="45"
        
        state="itemValue(config.blind_item)" />
        
          
        
          </button>
        
            <button style="margin-right: 0" ng-click="sendCmd('homee.0.ElectricMotorMeteringSwitch-9.UpDown-100', '1')"> <i class="glyphicon glyphicon-menu-down"></i>    </button>
        
        </span>
        
        
        
        

        MFG
        CrunkFX

        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        1 Reply Last reply
        0
        • F Offline
          F Offline
          fisch
          wrote on last edited by
          #4

          Suuuuuper vielen vielen DANK!!!

          Das passt definitiv....:+1: :+1:

          1 Reply Last reply
          0
          • CrunkFXC Offline
            CrunkFXC Offline
            CrunkFX
            Forum Testing
            wrote on last edited by
            #5

            @fisch Gerne, ab und zu mal Aufgaben zu haben hilft definitiv beim weiterlernen

            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            1 Reply Last reply
            0
            • F Offline
              F Offline
              fisch
              wrote on last edited by fisch
              #6

              klasse echt ...ich habs nicht hinbekommen.aber mit deiner Erklärung hab ich's noch etwas angepasst...

              Eine Frage habe ich noch...hat aber Zeit ;-)

              Und Zwar habe ich ein Kalender Widget importiert... mir gefällt nicht, dass die Überschrift "Kalender" sich je nach Termine horizontal verändert.

              Vielleicht hast dazu ja auch eine Idee...ich bekomme das mit CSS einfach nicht gebacken. Je mehr Termine desto höher rutscht die Überschrift.. Hätte es einfach gerne fixiert.
              Vielleicht hast du mal Muse , dir das anzusehen ;-)

              <style>
                .calendar {
              		top: 0px;
                  display: flex;
                  flex-direction: column;
                  justify-content: space-between;
                  bottom: 0px;
                  left: 0px;
                  right: 0px;
                  position: absolute;
                  padding: 100px;
                }
                .calendar-col-1 {
                	text-align: right;
                  flex-shrink: 0;
                }
                .calendar-col-2 {
                	text-align: left;
                  flex-grow: 1;
                  margin-left: 10px;
               		overflow: hidden;
              	}
                .calendar-row {
                   display: flex;
                  flex-direction: row;
                  justify-content: space-between;
                }
                div.event-date {
                	font-size: 1.5vw;
                	color: {{config.CalendarGlobalHighlightColor}};
                }
                div.event-day {
                	font-size: 1vw;
                }
                div.event-summary {
                	font-size: 1.5vw;
                	color: {{config.CalendarGlobalHighlightColor}};
                	white-space: nowrap;
                	overflow: hidden; 
                	text-overflow: ellipsis;
                }
                div.event-time {
                	font-size: 1vw;
                	font-weight: bold;
                }
                div.event-location {
                	font-size: 1vw;
                	white-space: nowrap;
                	overflow: hidden; 
                	text-overflow: ellipsis;
                }  
              	hr.event-divider { 
                	border: 0; 
                	height: 1px; 
                	margin: 0px;
                	background-image: -webkit-linear-gradient(left, #212124, #666666, #FFFFFF, #666666, #212124);
              	}
              </style>
              <div class="calendar">
                <div ng-repeat-start="n in [].constructor(5) track by $index">
                  <div ng-if="config.CalendarGlobalNumberOfEvents > $index" class="calendar-row" 
                       ng-init="endTime =config['CalendarEvent'+ ($index+1)+'EndDateTime']; 
                                startTime=config['CalendarEvent'+ ($index+1)+'StartDateTime']; 
                                summary=config['CalendarEvent'+ ($index+1)+'Summary'];
                                location=config['CalendarEvent'+ ($index+1)+'Location'];">
                    <div class="calendar-col-1">
                    	<div ng-if="(config.CalendarGlobalShowDate)" class="event-date"> {{itemValue(startTime) | date:'dd. MMM'}}</div>
                    	<div ng-if="(config.CalendarGlobalShowDay)" class="event-day"> {{itemValue(startTime) | date:'EEE'}}</div>
                    </div>
                   	<div class="calendar-col-2">
                      <div class="event-summary">
                    		<span ng-if="(config.CalendarGlobalShowSummary)"> {{itemValue(summary)}}</span>
                      </div>
                      <div class="event-time">
                        <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') == (itemValue(endTime) | date:'dd.MM.yyyy'))"> {{itemValue(startTime) | date:'HH:mm'}}</span>
                        <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') == (itemValue(endTime) | date:'dd.MM.yyyy'))"> - </span>
                        <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') == (itemValue(endTime) | date:'dd.MM.yyyy'))"> {{itemValue(endTime) | date:'HH:mm'}}</span>
                        <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') < (itemValue(endTime) | date:'dd.MM.yyyy'))"> All day </span>      
                      </div>
                      <div class="event-location">
                      	<span ng-if="(config.CalendarGlobalShowLocation)"> {{itemValue(location)}}</span>
                      </div>
                    </div>
                  </div>
              	</div>
                <div ng-repeat-end ng-if="(config.CalendarGlobalNumberOfEvents > $index +1)">
                    <hr class="event-divider"/>
                </div>
              </div>
              

              Bildschirmfoto 2020-05-15 um 20.22.41.png

              CrunkFXC 1 Reply Last reply
              0
              • F fisch

                klasse echt ...ich habs nicht hinbekommen.aber mit deiner Erklärung hab ich's noch etwas angepasst...

                Eine Frage habe ich noch...hat aber Zeit ;-)

                Und Zwar habe ich ein Kalender Widget importiert... mir gefällt nicht, dass die Überschrift "Kalender" sich je nach Termine horizontal verändert.

                Vielleicht hast dazu ja auch eine Idee...ich bekomme das mit CSS einfach nicht gebacken. Je mehr Termine desto höher rutscht die Überschrift.. Hätte es einfach gerne fixiert.
                Vielleicht hast du mal Muse , dir das anzusehen ;-)

                <style>
                  .calendar {
                		top: 0px;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                    bottom: 0px;
                    left: 0px;
                    right: 0px;
                    position: absolute;
                    padding: 100px;
                  }
                  .calendar-col-1 {
                  	text-align: right;
                    flex-shrink: 0;
                  }
                  .calendar-col-2 {
                  	text-align: left;
                    flex-grow: 1;
                    margin-left: 10px;
                 		overflow: hidden;
                	}
                  .calendar-row {
                     display: flex;
                    flex-direction: row;
                    justify-content: space-between;
                  }
                  div.event-date {
                  	font-size: 1.5vw;
                  	color: {{config.CalendarGlobalHighlightColor}};
                  }
                  div.event-day {
                  	font-size: 1vw;
                  }
                  div.event-summary {
                  	font-size: 1.5vw;
                  	color: {{config.CalendarGlobalHighlightColor}};
                  	white-space: nowrap;
                  	overflow: hidden; 
                  	text-overflow: ellipsis;
                  }
                  div.event-time {
                  	font-size: 1vw;
                  	font-weight: bold;
                  }
                  div.event-location {
                  	font-size: 1vw;
                  	white-space: nowrap;
                  	overflow: hidden; 
                  	text-overflow: ellipsis;
                  }  
                	hr.event-divider { 
                  	border: 0; 
                  	height: 1px; 
                  	margin: 0px;
                  	background-image: -webkit-linear-gradient(left, #212124, #666666, #FFFFFF, #666666, #212124);
                	}
                </style>
                <div class="calendar">
                  <div ng-repeat-start="n in [].constructor(5) track by $index">
                    <div ng-if="config.CalendarGlobalNumberOfEvents > $index" class="calendar-row" 
                         ng-init="endTime =config['CalendarEvent'+ ($index+1)+'EndDateTime']; 
                                  startTime=config['CalendarEvent'+ ($index+1)+'StartDateTime']; 
                                  summary=config['CalendarEvent'+ ($index+1)+'Summary'];
                                  location=config['CalendarEvent'+ ($index+1)+'Location'];">
                      <div class="calendar-col-1">
                      	<div ng-if="(config.CalendarGlobalShowDate)" class="event-date"> {{itemValue(startTime) | date:'dd. MMM'}}</div>
                      	<div ng-if="(config.CalendarGlobalShowDay)" class="event-day"> {{itemValue(startTime) | date:'EEE'}}</div>
                      </div>
                     	<div class="calendar-col-2">
                        <div class="event-summary">
                      		<span ng-if="(config.CalendarGlobalShowSummary)"> {{itemValue(summary)}}</span>
                        </div>
                        <div class="event-time">
                          <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') == (itemValue(endTime) | date:'dd.MM.yyyy'))"> {{itemValue(startTime) | date:'HH:mm'}}</span>
                          <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') == (itemValue(endTime) | date:'dd.MM.yyyy'))"> - </span>
                          <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') == (itemValue(endTime) | date:'dd.MM.yyyy'))"> {{itemValue(endTime) | date:'HH:mm'}}</span>
                          <span ng-if="(config.CalendarGlobalShowTime) && ((itemValue(startTime) | date:'dd.MM.yyyy') < (itemValue(endTime) | date:'dd.MM.yyyy'))"> All day </span>      
                        </div>
                        <div class="event-location">
                        	<span ng-if="(config.CalendarGlobalShowLocation)"> {{itemValue(location)}}</span>
                        </div>
                      </div>
                    </div>
                	</div>
                  <div ng-repeat-end ng-if="(config.CalendarGlobalNumberOfEvents > $index +1)">
                      <hr class="event-divider"/>
                  </div>
                </div>
                

                Bildschirmfoto 2020-05-15 um 20.22.41.png

                CrunkFXC Offline
                CrunkFXC Offline
                CrunkFX
                Forum Testing
                wrote on last edited by CrunkFX
                #7

                @fisch Probier mal was passiert wenn du die Zeile justify-content: space-between; gegen justify-content: flex-start; tauscht. Welches Widget benutzt du dafür ein von GitHub?

                Edit: Ups nicht zuende gelesen, probier das mal:

                <style>
                
                  .calendar {
                
                		top: 0px;
                
                    display: flex;
                
                    flex-direction: column;
                
                    justify-content: space-between;
                
                    bottom: 0px;
                
                    left: 0px;
                
                    right: 0px;
                
                    height: 100%;  /* Den Wert entsprechend anpassen */
                
                    position: absolute;
                
                    padding: 100px;
                
                  }
                /* Der Rest ............................................. */
                

                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                F 1 Reply Last reply
                0
                • CrunkFXC CrunkFX

                  @fisch Probier mal was passiert wenn du die Zeile justify-content: space-between; gegen justify-content: flex-start; tauscht. Welches Widget benutzt du dafür ein von GitHub?

                  Edit: Ups nicht zuende gelesen, probier das mal:

                  <style>
                  
                    .calendar {
                  
                  		top: 0px;
                  
                      display: flex;
                  
                      flex-direction: column;
                  
                      justify-content: space-between;
                  
                      bottom: 0px;
                  
                      left: 0px;
                  
                      right: 0px;
                  
                      height: 100%;  /* Den Wert entsprechend anpassen */
                  
                      position: absolute;
                  
                      padding: 100px;
                  
                    }
                  /* Der Rest ............................................. */
                  
                  F Offline
                  F Offline
                  fisch
                  wrote on last edited by
                  #8

                  @CrunkFX

                  Top! läuft :-). Vielen vielen Dank

                  CrunkFXC 1 Reply Last reply
                  0
                  • F fisch

                    @CrunkFX

                    Top! läuft :-). Vielen vielen Dank

                    CrunkFXC Offline
                    CrunkFXC Offline
                    CrunkFX
                    Forum Testing
                    wrote on last edited by
                    #9

                    @fisch Perfekt freut mich das ich helfen konnte.

                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    629

                    Online

                    32.7k

                    Users

                    82.4k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe