You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

64 lines
1.8 KiB
C

#include "gefran_gtf.h"
#include "avrIOhelper/io-helper.h"
#include "temperature.h"
#include <stdint.h>
#include <stdio.h>
#include "mqtt.h"
extern Client mqtt_client;
uint8_t heizung_state = 0;
uint8_t heizung_ontemp = 0;
float heizung_setpoint = 40;
void do_heizung(){
if(ADC_reading[1] > heizung_setpoint)
heizung_ontemp = 1;
if(ADC_reading[1] < heizung_setpoint)
heizung_ontemp = 0;
if(read_Input(BTN_HEIZEN_PLUS, LEVEL) && heizung_setpoint < 80){
heizung_setpoint += 0.2;
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint);
}
if(read_Input(BTN_HEIZEN_MINUS, LEVEL) && heizung_setpoint > 5){
heizung_setpoint -= 0.2;
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint);
}
if(read_Input(BTN_HEIZEN_AN, LEVEL)){
heizung_state = 1;
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 1);
}
if(read_Input(BTN_HEIZEN_AUS, LEVEL)){
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 0);
heizung_state = 0;
}
}
int8_t comm_heizung(){
int8_t res = 0;
if(heizung_state && !heizung_ontemp){
res |= gtf_write_register(5, 56, 500);
res |= gtf_write_register(6, 56, 500);
res |= gtf_write_register(7, 56, 500);
set_Output(LED_HEIZUNG, BLINK);
}
else if(heizung_state && heizung_ontemp){
res |= gtf_write_register(5, 56, 0);
res |= gtf_write_register(6, 56, 0);
res |= gtf_write_register(7, 56, 0);
set_Output(LED_HEIZUNG, ON);
}
else{
res |= gtf_write_register(5, 56, 0);
res |= gtf_write_register(6, 56, 0);
res |= gtf_write_register(7, 56, 0);
set_Output(LED_HEIZUNG, OFF);
}
return res;
}