Hi Pix!
Jetzt klappt es! Hab den Arduino so umkonfiguriert das er direkt mit ioBroker spricht!
Das Script hab ich auch noch etwas eingekürzt!
! ````
/* ##### Programm zum Erfassen der Briefkasteneinwürfe ########/
/ #### Verfasst durch Schneider Johann (PrinzEisenherz1) #######*/
var logging = false;
var instanz = 'javascript.0'; instanz = instanz + '.';
var pfad = 'Briefkasten.';
var idSayIt = 'sayit.0.tts.text';
var lautstaerke = 100;
var ansagetext = "Post ist da.";
var betreff = 'Briefkastenmeldung';
var von = "eMail-Adresse"; // Absender
var an = "eMail-Adresse"; // Empfänger
/* Erzeugen der nötigen Datenpunkte */
createState(pfad + 'Briefkasten_gefuellt', true, {read: true, write: true, type: 'boolean', name: 'Briefkasten voll in VIS Widget anzeigen', desc: 'Steuervariable für VIS Widget Sichtbarkeit'});
createState(pfad + 'Briefwürfe_zaehlen', 0, {read: true, write: true, type: 'number', name: 'Briefwürfe zählen', desc: 'Counter für Briefwürfe'});
createState(pfad + 'Briefkastensperre', false, {read: true, write: true, type: 'boolean', name: 'Briefkastensperre', desc: 'Sperrt die Zählung der Einwürfe für eine festgelegte Zeit'});
! /* Abfragen eingestellten Nachrichten-Dienst /
/ aus=0 ; alle=1 ; Pushover=2 ; Telegram=3 ; eMail=4 */
var pushdienst = 'hm-rega.0.32673';
var pushprio = 0;
var idSound = 'bugle';
var idDevice = '';
var TelegramID = 'ChatID';
/* ############## Variablen deklarieren ############################# /
var idBriefkasteneinwurf = 'javascript.0.Technikraum.Homeduino.homeduino_001_D27';
var idBriefentnahme = 'javascript.0.Technikraum.Homeduino.homeduino_001_D26';
var idCountEinwurf = instanz + pfad + 'Briefwürfe_zaehlen';
var idSperre = instanz + pfad + 'Briefkastensperre';
var idShowPostIcon = instanz + pfad + 'Briefkasten_gefuellt';
/ ######################################################### */
! /* Deklarieren der Benachrichtigungsdienste /
function meldung_push (text, titel, prio, sound, device) {
sendTo("pushover", {
message: text,
title: titel,
priority: prio,
sound: sound,
device: device
});
}
function meldung_email (from, to, subject, html) {
sendTo("email", {
from: from,
to: to,
subject: subject,
html: html
});
}
function meldung_telegram (text, chatID ) {
sendTo('telegram.0', {
text: text,
chatID: chatID
});
}
! on({id: idBriefkasteneinwurf, val: 0},
function (obj) {
var counter = getState(idCountEinwurf).val; // bisherige Zahl aus Variable einlesen
var sperre = getState(idSperre).val; // Zustand Briefkastensperre einlesen
setState(idShowPostIcon, true); // Icon für Briefkasteneinwürfe setzen
setState('hm-rpc.0.JEQ0087074.15.LED_STATUS', 3); // LED16-Status Orange
if(sperre === false){
setState(idCountEinwurf, ++counter); // eins hochzählen
if(counter === 1){
Briefkastenmeldung(counter);
} else
if(counter > 1){
Briefkastenmeldung(counter);
}
setState(idSperre, true); // Briefkastensperre aktivieren
setStateDelayed(idSperre, false, 30000); // Briefkastensperre nach 30.000 ms wieder deaktivieren
}
});
! on({id: idBriefentnahme, val: 0},
function (obj) {
var clearpost = instanz + pfad + 'Briefwürfe_zaehlen'; // bisherige Zahl aus Variable einlesen
setState(clearpost, 0); // Briefkasteneinwürfe löschen
setState('hm-rpc.0.JEQ0087074.15.LED_STATUS', 2); // LED16-Status grün
setState(idShowPostIcon, false); // Icon für Briefkasteneinwürfe löschen
Briefkastenentleerung();
});
! / ################## Funktion für Meldung bei einem Einwurf ########################## /
function Briefkastenmeldung(anzahl) {
/ Variablen befüllen /
var Einwurfanzahl = ((getState(idCountEinwurf).val) +1);
/ ###### Ausgabe über SayIt und auf der Dreambox PVR600 ####### /
setState(idSayIt, lautstaerke + ";" + ansagetext); // Ansagetext über Tablet
require('request')("http://192.168.178.90/cgi-bin/xmessage?caption=Postkasten&timeout=0&body=Post&=1");
/ ##################################################################### */
var meldung = 'Briefkasten: ';
var meldunghtml = '
! <u>Briefkastenmeldung</u>
! ' +
'Briefkasten: ';
if (anzahl === 1){
meldung = meldung + Einwurfanzahl + ' Einwurf! \n\n'
+ 'ioBroker';
meldunghtml = meldunghtml + Einwurfanzahl + ' Einwurf!' + '
' + '
' + '
' +
'ioBroker' + '
' + '
' + '
' + 'ioBroker' + ''; } /* Nachrichteninhalt für Pushover*/ if ( (getState(pushdienst).val === 2) || (getState(pushdienst).val === 1) ) { meldung_push(meldung, betreff, pushprio, idSound, idDevice); } if ( (getState(pushdienst).val === 2) || (getState(pushdienst).val === 3) || (getState(pushdienst).val === 1) ) { meldung_telegram(meldung, TelegramID); } /* Nachrichteninhalt an email übertragen */ if ( (getState(pushdienst).val === 1) || (getState(pushdienst).val === 4) ) { meldung_email(von, an, betreff, meldunghtml); } if (logging) log('Anzahl Briefkasteneinwürfe an Pushover und eMail übertragen'); } /* ############### Funktion für Meldung bei Entleerung ###################### */ function Briefkastenentleerung() { /* Variablen befüllen */ var meldung2 = 'Briefkasten wurde entleert! \n\n' + 'ioBroker'; var meldunghtml2 = '
>! <u>Briefkastenmeldung</u>
>! ' + 'Briefkasten wurde entleert!' + '
' + '
' + '
' + 'ioBroker' + ''; /* Nachrichteninhalt für Pushover*/ if ((getState(pushdienst).val === 2) || (getState(pushdienst).val === 1) ) { meldung_push(meldung2, betreff, pushprio, idSound, idDevice); } if ((getState(pushdienst).val === 2) || (getState(pushdienst).val === 3) || (getState(pushdienst).val === 1) ) { meldung_telegram(meldung2, TelegramID); } /* Nachrichteninhalt an email übertragen */ if ((getState(pushdienst).val === 1) || (getState(pushdienst).val === 4) ) { meldung_email(von, an, betreff, meldunghtml2); } if (logging) log('Briefkastenentleerung an Pushover und eMail übertragen'); }`
Sieht hoffentlich jetzt besser aus? *fg*
Nochmal vielen Dank!
Johnny