Seite 1 von 1

[gelöst] Rechnen mit float werten in widget

Verfasst: 2. Okt 2020 14:17
von franzda
Hallo
Ich habe bereits mehrere Widgets erstellt. Ist wirklich eine gute Möglichkeit openhab anzupassen/ zu erweitern.
Ich möchte nun, wenn ich eine Taste drücke, eine Addition/Subtraktion durchführen und den Wert in ein Item abspeichern.

Grundsätzlich geht das sehr gut, jedoch habe ich (noch) keine Dokumentation gefunden wie ich float Operation durchführen kann. Diese Lösung liefert eine Fehlermeldung.
Die Frage ist wie berechne ich den Wert Neuwert !
An liebsten wäre mir eine Quelle für Doku damit ich mich gründlich entwickeln kann.

DANKE

Code: Alles auswählen

<div ng-if="itemValue('Minus') =='OFF'">
 <button2 class="btn btn-lg" style="background: green; color: white"
  var float Neuwert = Grenze_Diesel + 0.01
  ng-click="sendCmd('Grenze_Diesel', itemValue('Neuwert'))">
  It's off! Switch on
 </button2>
</div>

Re: Rechnen mit float werten in widget

Verfasst: 3. Okt 2020 23:00
von franzda
Ich habe nun folgende Lösung erstellt und getestet:

Code: Alles auswählen

<h5  style="color:rgb(43, 189, 226)">Grenze E10 </h5>
<div style="color:greenyellow">Istwert: {{'%.03f' | sprintf:itemValue('Grenze_E10')}}</div>
<div oc-lazy-load="['/static/myangularPlus.js']">
    <div1 ng-init = "clkcount =  itemValue('Grenze_E10')"</div1>   
    <div ng-controller="ngclickCtrlPlus">
        <input style="background:cadetblue" type="button" style="cursor:pointer" value="Plus" ng-click ="getdetails()"/>
        <input style="background:cadetblue" "color:Red" type="button" style="cursor:pointer" value="setzen" ng-click ="sendCmd('Grenze_E10',clkcount)"/> <br></br>   
      	<span style="color:greenyellow">Sollwert: {{'%.03f' | sprintf:clkcount}}</span>
    </div> 
 </div>
sowie java Scipt

Code: Alles auswählen

(function() {

  'use strict';
  angular
  .module('app', [])
  .controller('ngclickCtrlPlus', ['$scope', function($scope) {  
    $scope.clkcount = parseFloat($scope.clkcount)
	$scope.getdetails = function (clkcount) {  
    $scope.clkcount = $scope.clkcount + parseFloat('0.01'); 
  }}]); 
})
();